






python2和python3互不适配,SqlMap是基于python2的,故而SqlMap不适配python3,这里打理virtualenvwrapper切换python发行版;一、sqlmap的装好
- 装好python3,装好成功会自动配置环境变量(个人计算机上wins环境,已然装有python37);
- 装好python2,装好成功会自动配置环境变量,手动删除环境变量;
- cmd窗口,输入python检查python发行版,显示的是配置了环境变量的python;
- 装好pip;
- 装好wins版的vitualenvwrapper,命令:pip install install vitualenvwrapper-win;
由于网络的原因可能出现报错: ERROR: Could not find a version that satisfies the requirement virtualenvwrapper-win (from versions: none) ERROR: No matching distribution found for virtualenvwrapper-win 通过镜像的方式搞定:pip install virtualenvwrapper-win -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com;
- 配置virtualenvwrapper虚拟环境的环境变量;
默认创建的虚拟环境位于C:\Users\username\envs,可通过WORKON_HOME来定制; 计算机-属性-高级环境配置-环境变量-新建环境变量,变量名:WORKON_HOME,变量值:自行设定路径;
- 创建当前发行版虚拟环境:mkvirtualenv noobvir;(可忽略该步骤)
- 创建指定发行版虚拟环境:mkvirtualenv --python=E:\program\python27\python.exe py27;
- 列出各类虚拟环境:workon;
- 进入虚拟环境:workon py27work;
- 退出虚拟环境:deactiveate;
- 删除虚拟环境:rmvirtualenv py27work;
- 取下来SqlMap,解压后将其复制到python27的装好目录下;
- 进入创建的python27的虚拟环境,并切换到sqlmap.py所在的路径,执行python sqlmap.py -h的命令;
如下图显示,则一律环境成功:
sqlmap常用基础命令
sqlmap Common operation command
- 大体执行步骤
以下命令顺序即为sql注入常见步骤。sqlmap -u url --dbs #获取数据库 sqlmap -u url --current-user #获取当前玩家名称 : sqlmap -u url --current-db #获取当前数据库名称 sqlmap -u url -D 数据库名 --tables #列出表名 : sqlmap -u url -D 数据库名 -T 表名 --columns #列出字段 sqlmap -u url -D 数据库名 -T 表名 -C 字段名1,字段名2,…… --dump #获取字段素材提示:
- 假如是Microsoft Access 可省略前三个步骤 且不得-D参数
- 获取字段素材时可省略字段信息径直查询各类字段 打理:
sqlmap -u url -D 数据库名 -T 表名 --dump
- 常见参数及解释
- -cookie=cookie的素材 配置cookie 值 通常配合获取数据库打理 --data 配置 POST 提交的值 -u 指定目标 URL -b 获取 DBMS banner --current-db 获取当前数据库 --current-user 获取当前数据库的玩家 --tables 获取数据库里各类的表名 --columns 获取表里的各类字段 --dump 获取字段中的素材 --current-user 获取当前玩家 -D [数据库名] 指定数据库名 -T [表名] 指定表名 -C [字段名] 指定字段名 --string 当查询可用时用来匹配页面中的字符串 --users 枚举各类玩家 --passwords 枚举各类玩家的密码hsah --dbs 枚举数据库中的数据库名 -r 指定请求包
GET型注入通常用 sqlmap -u urlPOST型注入通常用 sqlmap -u url --data POST参数假如得增加cookie或其他请求头 可将请求保存到文本中,如request.txt,则用sqlmap -r request.txt(经常配合burpsuite打理,径直将请求包保存到资料,接着打理sqlmap -r 来进行sql注入)二、sqlmap常用基础命令
- -level 5 探测等级(1~5 默认为1,等级越高Payload越多,速率也比较慢) --fresh-queries 刷新缓存,避免后续查询数据不升级 --techque=U 打理联合查询,B 布尔查询…… 通常能用U就用U 很快 --random-agent 打理随机ua --is-dba 判断当前玩家是否是管理员权限 --roles 列出数据库管理员角色(仅适用与Oracle数据库) --referer HTTP Referer头(伪造HTTP头中的Referer,当--level等级大于等于3时会通过伪造Referer来进行注入) --sql-shell 执行自行设定SQL语句 用法:sqlmap -u url --sql-shell --os-cmd,--os-shell 执行任意打理环境命令(仅适配MySQL、PostgreSQL、SQL Server) --file-read 从数据库服务器中读取资料(要了解资料绝对路径) --file-write "本地资料路径" --file-dest "远程绝对路径" 上传资料到数据库服务器中 --tamper "模块名" bypass绕waf时打理 具体模块可参考书《Web安全攻防 渗透测试实战指南》P40~49页
资源库 » sqlmap:wins系统+python3上安装