本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
这个项目之前自己已经审计过了,拿到了前台rce也成功给学员交差了,但是今天自己重新进行分析的时候发现了一个新的前台注入点,写出来分享分享,里面还包含了参数sign的加密过程。
还是熟悉的Struts2框架,这里查看Struts2框架的相关文件,来寻找路径对应映射类和方法即可,包括去查看相关鉴权。
这里直接定位到了一处对应的配置文件,知道了路径,并且这里没有拦截器之类的进行鉴权,直接可以前台访问,跟入寻找YktJrhx这个类,并且我们查看方法getRoomList方法。
这里进行传递了非常多的参数,其中有一个关键参数为SIGN参数,这里继续往下走,查看这个参数干了什么。
这里对参数都put进去并且调用了createSign方法,然后进行加密并且与传递的sign参数进行比对,成功之后继续往下走,否则提示。
成功的话json返回当中status提示1,sign校验不成功提示2.
这里先进行查看createsign的逻辑,并且把对应传递的key值也获取到。
获取到了加密方式之后,我们可以正常往下走,我们继续查看代码逻辑。
在这里直接拼接获取到了对应的SQL语句,并且进行了执行导致存在了前台SQL注入漏洞,但是这里sign一定要校验过去,程序才可以过if语句到达这个注入点。
这里根据系统中的createSign函数编写对应的sign生成脚本,然后本地测试。
常规操作下提示2,我们sign没有通过,这里生成对应延迟5s的sign脚本
代码审计第四期,富含PHP、JAVA、NET代码审计,顺带APP、小程序、WEB当中参数逆向以及JAVA工具二开与SRC案例讲解,其中多多0day讲解,实战案例分析,不拿着靶场去做,想学习速速报名了。
原文始发于微信公众号(进击安全):白盒Sign加密到前台SQL注入漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
http://cn-sec.com/archives/4101755.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论