侵权声明
本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。
如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系: [360619623@qq.com]。我们将在确认后的合理时间内采取适当措施,包括删除相关内容。
感谢您的理解与支持
0x00漏洞成因
网址后台有个可以执行sql语句的功能并且可以实现一句话写入达到文件上传的功能
0x01漏洞分析
通过bp抓包发现执行sql语句的文件
e -> admin -> db -> Dosql.php
查看源码
其中enews
参数是当通过post请求一起接收的参数,继续更进DoExeSql()
函数
前面几个if判断,第一个是判断sql语句是否为空,第二个判断dosave
是否为1并且add['sqlname']
是否为空。
红框处是执行sql语句的地方可以继续跟进,红框上一句$query=RepSqlTbpre($query);
将'[!db.pre!]'
替换成数据表的前缀。接下来继续更进DoRunQuery()函数
红框处就是正在执行sql语句的query()
函数,继续跟进
因为我是使用报错注入进行的debug的,所以执行到红框处就结束了。按道理后面还会返回到DoExeSql()
函数
0x02漏洞复现
1、找到功能点
2、使用sql语句将一句话文件上传
0x03总结
0x04参考
特雷萨兹迪/CVE (github.com)
免责声明
本博客所提供的技术知识和信息仅旨在教育和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技术和信息用于任何非法或不道德的目的。
使用本博客内容而导致的任何违法行为或后果,作者不承担任何法律责任。所有读者在使用本博客的信息时,应自行承担风险,并确保遵守当地法律法规。
我们鼓励所有读者合法地使用所提供的信息和技术,致力于维护安全和负责任的网络环境。
感谢您的理解与支持。