Comment utiliser sqlmapapi pour lancer une analyse
sqlmap peut être considéré comme un artefact de détection d'injection SQL, mais l'efficacité de l'utilisation de sqlmap pour tester l'injection SQL est très faible et chaque URL doit être testée manuellement. Les développeurs de sqlmap ont ajouté sqlmapapi.py, qui peut être utilisé directement via des appels d'interface, simplifiant ainsi l'exécution des commandes sqlmap.
sqlmap api est divisé en serveur et client. sqlmap api a deux modes, l'un est le mode d'interface basé sur le protocole HTTP et l'autre est le mode d'interface basé sur la ligne de commande.
adresse de téléchargement du code source sqlmap : https://github.com/sqlmapproject/sqlmap/
1 Voir l'aide
python sqlmapapi.py. - h
2. Démarrez le serveur API
Avant d'utiliser le service API, vous devez d'abord démarrer le serveur API, qu'il soit basé sur le protocole HTTP. ou un modèle d'interface basé sur une ligne de commande. Pour démarrer le serveur API, exécutez simplement la commande suivante : python sqlmapapi.py -s
Une fois la commande réussie, certaines informations seront renvoyées dans la ligne de commande. La commande suivante signifie à peu près que le serveur API s'exécute sur le port local 8775 et que le jeton d'administrateur est c6bbb0c1f86b7d7bc2ed6ce3e3bbdcb5, etc.
Cependant, il y a un inconvénient à ouvrir le serveur API dans de la manière ci-dessus. Lorsque le service Si le client et le client ne sont pas sur le même hôte, ils ne pourront pas se connecter. Par conséquent, si vous souhaitez résoudre ce problème, vous pouvez ouvrir le serveur API en entrant la commande suivante : python. sqlmapapi.py -s -H "0.0.0.0" -p 8775#🎜🎜 #
python sqlmapapi.py. - cSi le client et le serveur ne sont pas le même ordinateur, saisissez la commande suivante :
python sqlmapapi.py -c -H " 192.168.1.101" -p 87753.2, commande d'aide, obtenir toutes les commandes
1
2
3
4
5
6
7
8
9
10
11
12
13
help 显示帮助信息
new
ARGS 开启一个新的扫描任务
use
TASKID 切换
taskid data 获取当前任务返回的数据
log 获取当前任务的扫描日志
status 获取当前任务的扫描状态
option OPTION 获取当前任务的选项
options 获取当前任务的所有配置信息
stop 停止当前任务
kill 杀死当前任务
list 显示所有任务列表
flush
清空所有任务
exit
退出客户端
Copier après la connexion
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
3.3.1.new command
new -u "url" Exemple : new -u "http://www.baidu.com"Bien que nous ayons uniquement spécifié le paramètre -u, il ressort des informations renvoyées que la saisie de new Après l'émission la commande /task/new est d'abord demandée pour créer un nouvel ID de tâche, puis une demande est émise pour démarrer la tâche. Par conséquent, on peut constater que l'essence de ce mode est également basée sur le protocole HTTP.
3.3.2. Commande d'état
Obtenir l'état d'analyse de la tâche, if Si le champ d'état dans le contenu renvoyé est terminé, cela signifie que l'analyse est terminée. Si le champ d'état dans le contenu renvoyé est exécuté, cela signifie que l'analyse est toujours en cours. L'image suivante est une capture d'écran de l'analyse terminée :3.3.3 commande de données
Méthodes des utilisateurs Méthode utilisateurFonction d'administration Fonction de gestionfonctions d'interaction de base de SQLmap Fonction d'interaction de baseLes types de données qui peuvent être soumis sont les suivants :#🎜 🎜#
4.1, méthode utilisateur
@ get("/task/new")
1 2 3 4 5 6 7 8 9 10 11 12 |
|
@get("/task/delete")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
4.2, fonction interactive de base#🎜🎜 #
@get("/option/list")
@post("/option/get")@post("/ option/set")@get("/scan/stop")#🎜🎜 #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@post(
"/option/<taskid>/set"
)
def option_set(taskid):
""
"
Set value of option(s)
for
a certain task ID
""
"
if
taskid not in DataStore.tasks:
logger.warning(
"[%s] Invalid task ID provided to option_set()"
% taskid)
return
jsonize({
"success"
: False,
"message"
:
"Invalid task ID"
})
if
request.json is None:
logger.warning(
"[%s] Invalid JSON options provided to option_set()"
% taskid)
return
jsonize({
"success"
: False,
"message"
:
"Invalid JSON options"
})
for
option, value in request.json.items():
DataStore.tasks[taskid].set_option(option, value)
logger.debug(
"(%s) Requested to set options"
% taskid)
return
jsonize({
"success"
: True})</taskid>
Copier après la connexion@post("/scan/start")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@post(
"/scan/<taskid>/start"
)
def scan_start(taskid):
""
"
Launch a scan
""
"
if
taskid not in DataStore.tasks:
logger.warning(
"[%s] Invalid task ID provided to scan_start()"
% taskid)
return
jsonize({
"success"
: False,
"message"
:
"Invalid task ID"
})
if
request.json is None:
logger.warning(
"[%s] Invalid JSON options provided to scan_start()"
% taskid)
return
jsonize({
"success"
: False,
"message"
:
"Invalid JSON options"
})
# Initialize sqlmap engine
's options with user'
s provided options,
if
any
for
option, value in request.json.items():
DataStore.tasks[taskid].set_option(option, value)
# Launch sqlmap engine in a separate process
DataStore.tasks[taskid].engine_start()
logger.debug(
"(%s) Started scan"
% taskid)
return
jsonize({
"success"
: True,
"engineid"
: DataStore.tasks[taskid].engine_get_id()})</taskid>
Copier après la connexion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
@get("/scan/log")
@get("/download/")
4.3, fonction de gestion#🎜🎜 #
@get("/admin/list")1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
5. Utilisez sqlmapapi pour lancer une analyse
sqlmapapi.py fournit commodément une entrée de requête http, mais lorsqu'il est utilisé, vous ne pouvez obtenir que le résultat final, savoir s'il faut injecter ou non chaque interface. est spécifique lors de l'exécution d'une analyse par injection. Il est difficile de savoir quel type de requête est lancé et combien de requêtes sont effectuées. Permettez-moi de partager l'organigramme enregistré après avoir personnellement trié le code source de sqlmap. À partir de la figure, vous pouvez localiser l'emplacement spécifique de la requête au niveau de la charge utile. Si vous souhaitez savoir quel type de requête a été lancé et combien de requêtes, il vous suffit d'ajouter du code personnalisé ici.
6. Processus de mise en œuvre de l'automatisation de l'injection SQL
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Cet article examine l'approvisionnement du système d'audit de la sécurité opérationnelle. Il détaille les catégories typiques (matériel, logiciels, services), allocation budgétaire (CAPEX, OPEX, projet, formation, éventualité) et véhicules contractuels gouvernementaux appropriés (GSA SCH

Cet article détaille les responsabilités de sécurité cruciales pour les ingénieurs DevOps, les administrateurs système, le personnel des opérations informatiques et le personnel de maintenance. Il met l'accent sur l'intégration de la sécurité à toutes les étapes du SDLC (DevOps), implémentant un accès robuste C

Cet article explore les rôles et les compétences requises des ingénieurs de DevOps, de sécurité et des opérations informatiques. Il détaille les tâches quotidiennes, les cheminements de carrière et les compétences techniques et générales nécessaires pour chacune, soulignant l'importance croissante de l'automatisation, C

Cet article contraste les systèmes d'audit des opérations de sécurité des opérations (OPSEC) et de la sécurité du réseau (NETSEC). L'OPSEC se concentre sur les processus internes, l'accès aux données et le comportement des employés, tandis que NETSEC se concentre sur l'infrastructure réseau et la sécurité de la communication. Clé

Cet article examine DevSecops, intégrant la sécurité dans le cycle de vie du développement logiciel. Il détaille le rôle multiforme d'un ingénieur de sécurité DevOps, englobant l'architecture de sécurité, l'automatisation, la gestion de la vulnérabilité et la réponse aux incidents

Cet article examine les compétences essentielles pour une carrière réussie des opérations de sécurité. Il met en évidence le besoin d'expertise technique (sécurité du réseau, SIEM, plates-formes cloud), compétences analytiques (analyse des données, renseignement sur les menaces) et compétences générales (CO

DevOps améliore la sécurité opérationnelle en automatisant les contrôles de sécurité dans les pipelines CI / CD, en utilisant l'infrastructure comme code pour un contrôle amélioré et en favorisant la collaboration entre les équipes de développement et de sécurité. Cette approche accélère vulnérabi

Cet article détaille la sécurité opérationnelle et de maintenance (O&M), mettant l'accent sur la gestion des vulnérabilités, le contrôle d'accès, la surveillance de la sécurité, la protection des données et la sécurité physique. Responsabilités clés et stratégies d'atténuation, y compris les proacti
