记一次对某非法站点从SQL注入到整站打包与本地搭建全过程

hacker官网2025-06-24 10:57:353

记一次对某非法站点从SQL注入到整站打包与本地搭建全过程

在网络安全领域的探索中,我意外发现了一个非法站点,出于技术研究和对网络正义维护的初衷,我决定对其进行深入的渗透测试,从SQL注入开始,一步步实现整站打包,并最终在本地成功搭建该站点,这一过程充满挑战与收获。

一、信息收集

在发现该非法站点后,我首先利用各种工具进行初步的信息收集。通过在线IP查询工具得知,该站点的服务器位于境外,IP地址归属某小型IDC提供商。使用Nmap扫描发现其开放了80端口(HTTP服务)和3306端口(初步推测为MySQL数据库服务)。接着,利用WhatWeb工具分析网站指纹,确定其使用的是PHP语言和ThinkPHP框架,版本为5.0.23,这一版本存在一些已知的安全风险,为后续的渗透提供了一定的方向。

二、SQL注入漏洞发现与利用

(一)注入点探测

我开始对网站进行手动测试,尝试在各个输入点(如登录框、搜索框、评论区等)输入特殊字符,判断是否存在SQL注入漏洞。在测试到搜索功能时,当输入单引号'时,页面返回了SQL语法错误的提示,这表明该输入点可能存在SQL注入漏洞。为了进一步确认,我使用Burp Suite抓包工具,对搜索请求进行拦截和修改。

(二)判断注入类型

在Burp Suite中,我对抓到的数据包进行修改,在参数值后添加了and 1=1和and 1=2进行测试。当添加and 1=1时,页面正常返回,而添加and 1=2时,页面返回错误信息,这表明该注入点为基于布尔盲注的SQL注入漏洞。

(三)数据获取

接下来,我利用SQL注入漏洞开始获取关键数据。通过构造复杂的SQL语句,例如:

sql

and (select ascii(substring((select database()),1,1))=115) --+

上述语句的作用是通过逐位比较ASCII码的方式,获取当前数据库的名称。经过长时间的测试和计算,我成功获取了数据库名称为"illegal_site_db"。

之后,我继续构造语句获取数据库中的表名,例如:

sql

and (select ascii(substring((select table_name from information_schema.tables where table_schema='illegal_site_db' limit 0,1),1,1))=117) --+

通过这种方式,我获取了多个表名,其中一个名为"admin_users"的表引起了我的注意,推测这可能是存储管理员账号密码的表。

为了获取表中的字段名,我构造了如下语句:

sql

and (select ascii(substring((select column_name from information_schema.columns where table_name='admin_users' limit 0,1),1,1))=117) --+

最终获取了"admin_users"表中的字段名,包括"username"、"password"、"email"等。

最后,通过类似的方法,我成功获取了管理员的账号和加密后的密码。

三、获取网站后台权限

虽然获取了管理员账号和加密密码,但密码加密方式较为复杂,短时间内无法破解。于是,我重新审视注入点,发现可以利用堆叠注入的特性。通过构造如下语句:

sql

;update admin_users set password=md5('new_password') where username='admin'; --+

这条语句的作用是将管理员的密码修改为我指定的新密码(这里使用MD5加密后的新密码)。修改成功后,我使用新密码成功登录到网站后台。

四、整站打包

进入后台后,我发现网站没有直接提供文件管理和下载功能。于是,我决定上传一个WebShell来实现整站打包。通过查找网站的文件上传点,利用文件上传漏洞(该网站对上传文件类型校验存在缺陷),成功上传了一个名为"shell.php"的WebShell。

连接到WebShell后,我使用Linux命令进行整站打包。首先,使用tar命令将网站根目录下的所有文件打包成一个tar包:

bash

tar -zcvf website.tar.gz /var/www/html/

然后,通过WebShell将打包好的tar包下载到本地。

记一次对某非法站点从SQL注入到整站打包与本地搭建全过程

对于数据库,我使用MySQL的导出命令将数据库数据导出为SQL文件:

bash

mysqldump -u username -p password illegal_site_db > illegal_site_db.sql

同样,将导出的SQL文件通过WebShell下载到本地。

五、本地搭建

(一)环境准备

本地搭建环境选择了Windows 10操作系统,安装了Apache服务器、PHP环境和MySQL数据库,即所谓的WAMP环境。

(二)网站部署

将下载的网站文件解压到Apache的默认网站根目录(通常为C:\wamp64\www\)。然后,修改网站的配置文件(如数据库连接配置文件),将数据库连接信息修改为本地MySQL数据库的信息。

(三)数据库导入

打开MySQL命令行,创建一个新的数据库,命名为"illegal_site_db",与原数据库名称一致。然后,使用以下命令将导出的SQL文件导入到新建的数据库中:

sql

source C:\Users\YourUsername\Downloads\illegal_site_db.sql;

(四)测试访问

完成上述步骤后,在浏览器中输入"http://localhost",成功访问到本地搭建的非法站点。经过测试,网站的各项功能基本正常,这意味着本地搭建成功。

记一次对某非法站点从SQL注入到整站打包与本地搭建全过程

这次对非法站点的渗透测试与本地搭建过程,让我深刻认识到网络安全的重要性以及非法站点存在的安全隐患。同时,也提醒广大开发者和网站管理者要重视网络安全,及时修复漏洞,防止网站被攻击和利用。在整个过程中,我严格遵守法律和道德规范,仅将技术用于研究和学习目的,希望通过分享这段经历,能够提高大家的网络安全意识。