Sqli-Labs:Less15-Less16
2018-08-01 本文已影响0人
Hyafinthus
Less15
基于Bool_POST_单引号_字符型_盲注
Less16
基于Time_POST_双引号_小括号_字符型_盲注
这两关的后台php文件其实是一样的,只是为了练习两种盲注方式。
0x01. 注入方式与回显对比
GET
Less | 注入方法 | 正确回显 | 错误回显 |
---|---|---|---|
1 | 基于错误注入 | 查询到的用户名和密码 | Mysql错误信息 |
5 | 双注入 | 固定字符串 | Mysql错误信息 |
7 | 导出文件注入 | 固定字符串 | 另一固定字符串 |
8 | Bool型盲注 | 固定字符串 | 无 |
9 | Time型盲注 | 固定字符串 | 同一固定字符串 |
POST
Less | 注入方法 | 成功回显 | 失败回显 | 错误回显 |
---|---|---|---|---|
11 | 基于错误注入 | 用户名和密码 (flag.jpg) | 无 (slap.jpg) | Mysql错误信息 (slap.jpg) |
13 | 双注入 | 无 (flag.jpg) | 无 (slap.jpg) | Mysql错误信息 (slap.jpg) |
15 | Bool/Time型盲注 | 无 (flag.jpg) | 无 (slap.jpg) | 无 (slap.jpg) |
注意:GET和POST差别在于,GET只需要提交参数id
,而POST则需要username
与password
都正确。
0x02. 分析查询语句
不像GET中若出现错误回显必是Mysql语法错误(提交时使id
存在),POST若不返回Mysql错误信息,光凭一个登录失败
是分不清是用户名和密码不正确还是出现了Mysql语法错误。
所以我们就需要在POST时构造永真条件使返回忽略用户名和密码不正确这种情况。若将查询语句闭合则会显示登陆成功
,则可以依次增加小括号个数分析查询语句:
uname=1&passwd=1 or 1=1--+
uname=1&passwd=1' or 1=1--+
uname=1&passwd=1" or 1=1--+
uname=1&passwd=1') or 1=1--+
uname=1&passwd=1") or 1=1--+
0x03. 脚本注入过程
脚本在POST盲注脚本中给出。
注入的详细过程在GET的盲注部分已介绍:修改url,查询语句闭合,数据库、表和字段名即可。
使用的是同一个数据库,便不截图了。