概述
前言
从这一关开始,我们就进入到了POST注入的世界了。在接下来的几关中我们将陆续介绍关于POST注入的方法以及技巧。
POST
post是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常常使用的用户登录模块、网站的留言板模块等,在这些功能模块中我们提交的数据都是以post的方式提交的服务器的,之后再由服务器端进行验证。
Less-11
关卡界面:
我们首先提交一个admin试试看会有什么样的效果:
从提交之后的结果中,我们可以发现我们提交的数据在页面当中进行了回显,输入了怎样的数据就输出怎样的数据了!我们这里不妨来看看源代码,看看具体的流程:
这里的传入的参数“username”、password是用单引号引起来的,而且使用and来进行组合,那么这里我们究竟如何构造payload呢?
无论是post还是get最后都会在后台形成SQL语句之后再执行,所以我们可以想想之前get的各种注入,这里我们是否可以用“注释”、“单引号”这些来构造呢?我们不妨试试:
username:admin' --
password: aaa
报错信息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'aaa' LIMIT 0,1' at line 1
从错误信息中,我们可以从错误中分析到程序对参数进行单引号的处理。
这里我们不妨可以在输入框中输入万能密码来试试:
username:admin' or '1'='1 --
password:aaa
之后的回显结果为:
这里解释一下,当我们提交username=admin' or '1'='1 -- ,password=aaa的时候,在后台形成的语句为:
@$sql="SELECT username, password FROM users WHERE username='admin'or '1'='1 --' and password='aaa' LIMIT 0,1";
在“--”之后的内容都会被注释掉,前面的内容因为or 1=1恒成立,所以语句就成立,我们此时就可以以用户admin登录。接下来我们可以用之前在get注入中使用到的语句来代替or 1=1来进行注入。
username:' union select 1,database() --
password:aaa
从这里我们可以得到数据库名为security
最后
以上就是自信汉堡为你收集整理的sqli-labs ————less -11(POST注入)前言POSTLess-11的全部内容,希望文章能够帮你解决sqli-labs ————less -11(POST注入)前言POSTLess-11所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复