
Script Python simples suportado com perfil BurpBouty que ajuda a detectar injeção SQL "baseada em erro" enviando múltiplas requisições com 14 payloads e verificando 152 padrões regex para diferentes bancos de dados.
Script Python simples suportado com perfil BurpBounty que ajuda você a detectar injeção SQL "baseada em erro" enviando múltiplas requisições com 14 payloads e verificando 152 padrões de regex para diferentes bancos de dados.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| S|Q|L|i| |D|e|t|e|c|t|o|r|
| Coded By: Eslam Akl @eslam3kll & Khaled Nassar @knassar702
| Version: 1.0.0
| Blog: eslam3kl.medium.com
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

A ideia principal da ferramenta é escanear por injeção SQL baseada em erro usando diferentes payloads como
'123
''123
`123
")123
"))123
`)123
`))123
'))123
')123"123
[]123
""123
'"123
"'123
\123
E corresponder a 152 padrões de regex de erro para diferentes bancos de dados.
Fonte: https://github.com/sqlmapproject/sqlmap/blob/master/data/xml/errors.xml
É muito simples, basta organizar seus passos da seguinte forma
O esquema final de URLs que você passará para a ferramenta deve ser como este
https://aykalam.com?x=test&y=fortest
http://test.com?parameter=ayhaga
Basta executar o seguinte comando para instalar as bibliotecas necessárias.
~/eslam3kl/SQLiDetector# pip3 install -r requirements.txt
Para executar a ferramenta em si.
# cat urls.txt
http://testphp.vulnweb.com/artists.php?artist=1
# python3 sqlidetector.py -h
usage: sqlidetector.py [-h] -f FILE [-w WORKERS] [-p PROXY] [-t TIMEOUT] [-o OUTPUT]
A simple tool to detect SQL errors
optional arguments:
-h, --help show this help message and exit]
-f FILE, --file FILE [File of the urls]
-w WORKERS, --workers [WORKERS Number of threads]
-p PROXY, --proxy [PROXY Proxy host]
-t TIMEOUT, --timeout [TIMEOUT Connection timeout]
-o OUTPUT, --output [OUTPUT [Output file]
# python3 sqlidetector.py -f urls.txt -w 50 -o output.txt -t 10
Criei um perfil burpbounty que usa os mesmos payloads e os injeta em múltiplas posições como
Acho que é mais eficaz e será útil para requisições POST que você não pode testar usando o script Python.


Qual é a diferença entre esta ferramenta e qualquer outra?
Se tivermos um link como este https://example.com?file=aykalam&username=eslam3kl, temos 2 parâmetros. Ele cria 2 URLs possivelmente vulneráveis.
https://example.com?file=123'&username=eslam3kl
https://example.com?file=aykalam&username=123'
Se você quiser contribuir, sinta-se à vontade. Você é bem-vindo :)
Agradecimentos a Mohamed El-Khayat e Orwa pelos incríveis paylaods e ideias. Siga-os e você aprenderá mais
https://twitter.com/Mohamed87Khayat
https://twitter.com/GodfatherOrwa