参考资料:https://www.jianshu.com/p/9856e5beb2a2
利用条件:管理员
漏洞位置:D:\phpStudy\WWW\xycms\system\loginpass.php
在后台管理员登录处出现SQL注入。
搭建好环境后对后台登录loginpass.php进行代码审计。
loginpass.php注:为了方便调试,取消了验证码的验证。。
当管理员输入正确的用户名、密码后,程序会通过验证,并且经login_nums登陆次数进行自加1,然后会将login_info登录的信息insert插入到admin_login_log数据表里,而$login_ip参数没有经过过滤就插入到数据库,导致SQL注入。
$login_ip参数来源于getIp这个方法。
看getIp这个方法,进行追踪。
在D:\phpStudy\WWW\xycms\Libs\Function\fun.php这个文件里。
fun.php可看到只是来获取访问者的ip,没有经过和过滤。漏洞由此产生。
漏洞利用:可以通过X-Forwarded-For来进行伪造客户端的ip,从而实现SQL注入。
ok可以清楚看到执行了SQL注入的语句。
使用sqlmap进行跑包。
success与此同时,数据库会产生大量数据。
总结:虽然该cms的版本很低,也不好利用,但是这个技巧、思路还是值得借鉴的。
网友评论