sqli-labs less11

管理员 2020-01-02 PM 165℃ 0条

1.先看下界面,是一个典型的登录框。这一关和前面的不同,前面的是使用GET方法提交参数,而这关是使用POST方法,关于GET方法和POST方法

2.账号密码随便输入进行测试,发现登录失败

3.火狐浏览器可以在按F12查看提交的变量和参数

4.虽然不知道闭合符,但大概可以猜测后端的密码认证查询语句可能是 where uaername=$uname and password=$passwd

基于这个猜想,我们可以在password输入框进行测试闭合符。输入1'

居然报出了sql的错误语句,红色方框中有5个单引号,最外两个是提示错误位置时自动添加的,最里面的那个是我们提交上去的,那么就还剩一对单引号,所以闭合符我们可以使用单引号进行注入。

5.为了让注入比较方便,本人喜欢用hackbar这个插件进行测试,这个插件火狐浏览器跟chrome都可以装,不过要付费的,对于喜欢白嫖的同学可以在网上找破解版。

关于hackbar的更多使用方法各位同学可以自己摸索。

6.红色方框中的错误,是因为和我们在 uanem中提交的 1’ or 1=1 在提交到后端执行sql查询语句后发生了冲突,所以我们要注释掉后面的条件语句。mysql常用的注释符有 # -- /* */,那我们就用 # 试下。

可以看到,在1=1后面加了 # 后,页面返回了登录成功的信息,说明我们注入成功。

7.使用 order by 从1开始查询列数的时候,到3的时候发生了报错,说明后端sql查询语句查询了两个字段,所以当我们使用 union 进行联合查询的时候,查询的字段数也要等于2,union select 1,2 像这样就是合法的,不能多也不能少,mysql的 union 对查询的数据类型没有限制。前后数据类型不一样也可以使用,而貌似mssql 和Oracle 有限制,这个感兴趣的同学可以去看看。

8.查询回显位置,可以看到1跟2两个字段的位置都可以回显。

9.uname参数中插入下面payload查询出数据库中所有的库名

0' union select 1,group_concat(schema_name) from information_schema.schemata#

10.后面的猜库 猜表 猜字段 爆数据的我就不说了,都跟前面的大同小异。

标签: post注入

非特殊说明,本博所有文章均为博主原创。

上一篇 sqli-labs less12
下一篇 sqli-labs less10

评论啦~