从这一关开始我们开始进入到post注入的世界了,什么是post呢?就是数据从客户端提交到服务器端,例如我们在登录过程中,输入用户名和密码,用户名和密码以表单的形式提交,提交到服务器后服务器再进行验证。这就是一次post的过程的。
less 11:
这里我们还是尝试一下get注入里常用的:
执行:admin' or '1'='1 #
当我们提交username和password后,后台形成的sql语句为
@$sql="SELECT username, password FROM users WHERE username='admin'or'1'='1# and password='$passwd' LIMIT 0,1";
如下图,可以看到页面已经正常回显用户名和密码登录。
ps:上面并不能用数据库中没有的用户名去构造语句,否则页面无回显,但是不代表我们语法有错误。
比如下面 我们分别用:
1. uname=' order by 2# &passwd=admin&submit=Submit
2. uname=' order by 3# &passwd=admin&submit=Submit
1.页面依然没有回显,但是语句是正确的。
2.出现报错,说明只有两个字段。
后面步骤与less-1一致,在uname中构造payload即可。
less 12:
与less 11基本相似,只不过变为了用 ") 闭合语句。
less 13:
uname中输入1‘ 密码随意,出现报错:说明这里要用 ') 闭合语句
登录成功之后页面像前两关那样回显的信息了
后续过程就类似 less-5中的布尔盲注按位猜解数据库,数据表,列,信息即可。
less 14:
与less 13类似,只是uname进行了 " 操作,注意闭合"即可
less 15:
这里尝试uname输入1‘ password输入1
没有出现报错提示,那么还是布尔盲注或者延时注入。
源代码中uname进行了单引号包裹,注意闭合单引号即可,方法与前机关类似。