sql布尔盲注
使用的工具:
sql注入中的布尔盲注主要通过对数据库字段中的每一个字符的ascii值进行匹配, 直到结果为真时结束匹配, 最后达到爆破字段内容的目的
这里以长城杯2024的sxmisc
为例:
wireshark打开, 导出http对象:

发现很长的url, 语法明显是sql语句, 再看末尾:

末尾以tQlu
这种无意义四个字母结束, 一般为sql布尔盲注特征, 以每个四个字母结尾的为一组注入流量
分析时需要将每一组的所有流量提取出来解析
提取url
先过滤所有的访问url并排除所有的返回包:
导出分组解析结果时勾选只保留概要行:

得到所有的访问url(导出的文件建议用 emeditor
打开):

将整个文件进行url解码得到可读性更高的内容:

同样以 tQlu
分组为例, 可以看出当前组正在从 accounts
表中爆破 priv_key
字段
红框标注出的变化的内容为当前爆破的字段的第 n
个字符, 蓝框标注出的内容为尝试爆破的字符的ascii值
一般情况下爆破每个字符的最后一次尝试为正确的内容(前提是这次操作是成功的)
提取成功操作的url
在操作过程中有些注入是不成功的, 一般通过返回内容的长度来判断是否成功, 查看返回包长度, 这里有两个, 245和198:


成功操作一般就是其中一个, 这里是198, 因为这里245返回的都是同一个内容, 而198操作中没有回显(这个判断一般根据具体情况), 不好判断可以两个都试一下
直接过滤这一组的所有content_type为198的的包:
将分组解析结果作为json导出得到内容:

找到其中的请求url部分, 使用正则表达式对其进行提取:

选中 "http.request.full_uri"
(提前勾选正则表达式选项), 按下 ctrl + F 在自动生成的表达式后加上 .*
, 全部选择, 选择后可以右键对所有的匹配项进行复制并粘贴到新文件中 下面是粘贴后并进行url解码的内容:

同样可以使用正则或替换功能将无关信息删除, 处理为下面的格式:
n
代表上一节中红框标出的内容, char
代表上一节中蓝框标出的内容:

python处理
编写一个简单的脚本对最后的数据进行解析, 目的是找到每个n的最后一行(仅作示范)
最后就可以得到这一组爆破的字段内容:

具体的flag需要结合题目具体分析
总结
整个流程大致就是上面的内容, 由于注入的url等信息会根据使用的工具和不同数据库改变, 也为了方便理解每一个步骤, 这里并没有直接贴出通杀脚本, 更方便的脚本可以根据自己的理解去编写