SQL Server写Webshell总结:突破中文路径限制

背景

在对目标站进行渗透测试中,我们发现了一处引人注目的权限文件,并通过抓包刷新,发现了一个指向TicketsSellMainHandler.ashx文件的Ajax请求。接下来,我们将详细介绍如何通过MSSQL注入成功上线的过程。

图片[1]-SQL Server写Webshell总结:突破中文路径限制-山海云端论坛

探索与发现

  1. 注入点发现 我们在抓包中发现了一个指向TicketsSellMainHandler.ashx文件的请求,为了进一步探索,我们决定深入研究这个注入点。
  2. 探测注入 通过注入测试,我们成功地确认了存在注入漏洞,为后续的攻击奠定了基础。

注入利用的踩坑过程

  1. 获取站点路径 我们首先尝试通过注入开启XP_cmdshell以获取站点源码。通过执行dir命令,我们获得了站点的绝对路径。
  2. 中文路径问题 由于站点路径为中文,直接使用echo写入马已经无法实现。为了解决这个问题,我们利用sqlmap以UTF-8编码进行echo写入。
  3. PowerShell上线失败 尝试使用PowerShell上线时,遇到了360存在的问题,暂时放弃并考虑其他方式。
  4. BAT文件写入Shell 利用sqlmap的–file-write命令,我们成功地写入了一个BAT文件,并了解到MSSQL调用cmd的编码为gb2312。
  5. ASP木马兼容性问题 在尝试多次后,发现ASP木马的%符号与BAT文件不兼容。尝试了无%的木马脚本失败后,我们决定手工写入shell。<SCRIPT language=VBScript runat=”server”>execute request(“MH”)</SCRIPT> 由于机器配置原因,此方法也失败,遂放弃。
  6. 手工写入Shell 通过将sqlmap代理到Burp,抓取echo写马的数据包,我们手工写入shell,成功避开了之前的兼容性问题。
  7. 利用certutil下载上线 与sqlmap的–file-write类似,我们使用certutil.exe远程下载木马到对方D盘,并通过start运行实现上线。

攻击总结

通过深入的渗透测试,我们成功地发现了注入漏洞,并利用MSSQL注入顺利上线。在攻击过程中,我们踩过不少坑,但通过灵活的思维和手工写入的方式,最终取得了成功。总结经验,查找文件和写入shell时的一些关键命令,以及兼容性问题的解决方案都是我们今后攻击中可以借鉴的经验。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容