11.有回显,单引号
首先判断是字符型还是数字型
通过order by 来获取字段数 方便后续union联合
注意这里mime表明了内容要进行url编码,测试3报错,2正常,所以有2列。
还需要判断显示位,因为只有显示位的数据才能被爆出来。
不信你看,这里使用万能密码,按理来说应该是得到所有数据,但是只得到了一个,就是因为显示位的设置
使用union联合查询,判断显示位,注意语句当中的空格,select后面要加上空格
这样就可以把1,2位置换成其他的语句进行爆破即可。
使用shema(),爆破出数据库名称
12双引号加括号
.测试发现上一关的poc这一关用不了
先判断是字符型还是数值,发现加不加单引号都是没反应
尝试双引号,果然
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 '"1"") and password=("") LIMIT 0,1' at line 1
从报错信息当中知道不仅是双引号包裹外面还有括号
判断字段数 poc(轮子):1") order by 3#
因为本身就没有数据,只会当列数大的时候报错
剩下的内容和之前是一样的,变形轮子即可,这道题的关键就在于发现它是双引号和有括号
13.单引号加括号
1个单引号报错
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 ''1'') and password=('') LIMIT 0,1' at line 1
所有知道是单引号加括号
所以poc和上一关是一样的把双引号换成单引号就行了
但是这关使用万能密码啥的也没有回显,要用报错注入
14.双引号
尝试1个双引号报错 两个正常
所以和11关是类似的,但是也要用报错注入
15.盲注无回显,单引号
构造单双引号发现怎样都是没有报错信息的,是盲注
通过尝试万能密码,发现是通过单引号闭合的
poc:1’ or 1=1 # 登录成功
通过延函数,确定这里存在sql注入
poc:1 ' or sleep(5) # //这里是and就不行,因为一个为假的话,后面的延时函数就不会执行
之后使用延时注入即可
16.盲注无回显,双引号加括号
和15关一样也是盲注,错误信息被注释了
思路就是:既然不会报错的话,那么我们就要想办法构造可以成功执行的语句。
多次fuzz
知道了它是双引号加括号的盲注
剩下的就会上面一关是一样的了 构造poc即可
17修改密码盲注,updata函数
.这一关的网站首页变了
变成了修改密码的窗口
当用户不存在时的错误信息
尝试构造单双引号,发现也不会返回错误信息,又是盲注。
查看源码发现,会对输入的用户名进行过滤,所以只能在输入密码的地方尝试注入
修改密码使用的是updata函数
使用报错注入可以选择extractvalue()报错注入,updatexml()报错注入和group by()报错注入。
poc:可以看这个全网最全sqli-labs通关攻略(建议收藏)-腾讯云开发者社区-腾讯云 (tencent.com)
18.ua盲注
也是盲注,只会显示登录失败,但不会返回sql语句错误信息。要使用报错函数
查看源码发现对用户名和密码都做了处理 尝试ua头注入
因为有一些网站可能会把用户访问信息的ua头存储起来分析用户的使用习惯,是用手机访问的多还是电脑等等。
在ua头后面加了一个单引号发现报错,但是这里的逻辑是只有用户名和密码正确的时候,它才会去保存你的ua信息,前面试了几次但是用户名和密码是错的,也不行
接下来就可以尝试报错注入。
19.refer盲注
登录成功,发现会显示refer信息
那就尝试在refer当中构造
一个单引号,报错
所以在这个地方构造报错注入即可。
20.cookie盲注
登录成功后发现记录有cookie信息,可以删除,试了一下就是在cookie的值当中构造poc
21.cookie盲注加base64编码
本关的注入点在cookie参数,和上一关payload一样只是编码方式不同
这一关当中cookie信息是经过base64编码的,所以我们在构造poc时,也要进行base64编码
22.cookie盲注加双引号
本关的注入点在cookie参数,和上一关payload一样只是双引号闭合方式