前置准备
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
执行命令python sqlmap.py -h可能会出现如下错误
[22:46:31] [CRITICAL] missing one or more core extensions ('bz2') most likely because current version of Python has been built without appropriate dev packages
需要指定:python2.7 sqlmap.py -h 才能正常展示-h信息
sqlmap.py运行参数详解
-v:输出信息按从简到繁共7个级别
0:只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL];
1:同时显示普通信息[INFO]和警告信息[WARNING];
2:同时显示调试信息[DEBUG];
3:同时显示注入使用的攻击荷载;
4:同时显示HTTP请求;
5:同时显示HTTP响应头;
6:同时显示HTTP响应体。
-d:直接连接数据库,该参数后跟一个表示数据库的字符串
场景1:当数据库管理系统是MySQL、Oracle、Microsoft SQL Server或PostgreSQL等时格式为:DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
场景2:当数据库管理系统是SQLite、Microsoft Access或Firebird等时格式为:DBMS://DATABASE_FILEPATHmysql
示例:python2.7sqlmap.py -d"mysql://testlink:XXXX@127.0.0.1:3306/XXX"出现:SQLAlchemy connection issue ('ImportError: No module named MySQLdb')
-u或–url: 指定一个URL作为目标
该参数后跟一个表示URL的字符串,可以是http协议也可以是https协议,还可以指定端口示例:python2.7sqlmap.py-u"sqlmap"如果存在多个url,将多个url保存在txt文件中,运行:python2.7sqlmap.py-murl.txt
-l:指定一个Burp或WebScarab的代理日志文件,Sqlmap将从日志文件中解析出可能的攻击目标,并逐个尝试进行注入。该参数后跟一个表示日志文件的路径;
示例:python2.7sqlmap.py -l ../proxy.log
-x:解析xml格式的站点地图,从中提取攻击目标,对网站全方位无死角地进行注入检测
示例:python sqlmap.py -x http://www.6eat.com/sitemap.xml
-r:可以将一个HTTP请求保存在文件中,然后使用参数“-r”加载该文件
示例:pythonsqlmap.py-rget.txt
-g:能自动获取Google搜索的前一百个结果,对其中有GET参数的URL进行注入测试。当然,所处的网络环境要能访问Google才行
示例:python2.7sqlmap.py -g"inurl:\".php?id=1\""
-c:指定一个配置文件(如:sqlmap.conf),解析该配置文件,按照该配置文件的配置执行动作。配置文件中可以指定攻击目标,实际上除了攻击目标外,配置文件还可以指定各种参数的值.