sqli-labs less5-6盲注
November 22, 2020
1656
这两关中不再有数据回显到前端页面,需要利用一些方法、判断进行尝试。
盲注的分类
•基于布尔 SQL 盲注
•基于时间的 SQL 盲注
•基于报错的 SQL 盲注
基于布尔 SQL 盲注
截取字符串相关函数
1 |
|
ord()→mid()
ascii()→substr() 这二者通常组合使用
regexp正则注入
这边拿user()来举个栗子,这边结果为root
这边使用了if语句
通过 if 语句的条件判断,返回一些条件句,比如 if 等构造一个判断。根据返回结果是否等
于 0 或者 1 进行判断。
但是这里可以通过是否有回显进行判断结果的正确性。
通过regexp正则注入查表名
基于时间sql注入——延时注入
可与前面的截取字符串函数,逻辑判断联用
举个栗子
1 |
|
在网速不好的情况下,该方法注入会受其影响。
基于报错sql注入
相比一个个手打或者等时长来说,报错sql注入确实方便很多。
▲Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2)) a from information_schema.columns group by a
[]: https://www.freebuf.com/column/235496.html “Mysql报错注入之floor(rand(0)*2)报错原理探究”
利用 double 数值类型超出范围进行报错注入
Exp()为以 e 为底的对数函数;版本在 5.5.5 ~5.5.53(之前)
1 |
|
bigint 超出范围;~0 是对 0 逐位取反,版本在 5.5.5 ~5.5.53(之前)
1 |
|
好家伙,我这里mysql版本为5.5.53,并不能成功实现报错。
xpath 函数报错注入
extravalue()报错注入
updatexml()报错注入
这里的0x7e可换为其他的十六进制符号编码,若为十六进制字母编码或者非十六进制编码则报错失败
利用数据的重复性
据说这个只能查系统版本,改天来试一下好了。
小结
大概整理了一下这两关注入所需的方法,今天好像是写这篇博客的的的的的的的的的。。。。。。。。对,第六天(27了,就离谱),讲真内容还蛮多的,慢慢来好了,反正我不急,我真的不着急。
- 本文作者:Almond
- 本文链接:http://example.com/2020/11/22/sqli-labs%20less5-6%E7%9B%B2%E6%B3%A8/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!