张坤的个人博客

  • 首页
  • 分类
  • 标签
  • 日志

  • 搜索
Jenkins RabbitMQ Zookeeper IDEA Logstash Kibana ELK NIO Netty Spring Cloud Golang DataX Elasticsearch React Native Mysql H2 Socket Spring Boot Kafka Mybatis Sqlmap Vue Postgresql Docker Vert.x Flutter Flink Redis

Sqlmap学习笔记(二)

发表于 2020-05-29 | 分类于 Sqlmap | 0 | 阅读次数 24

#### Sqlmap设置Http请求参数

​ --cookie:指定cookie信息,用来代理登陆状态,如果站点目标URL需要登陆之后才能访问,那么在使用sqlmap对目标URL进行扫描时需要将登陆后的cookie一并带过去,不然sqlmap的扫描有可能会被重定向到登陆页面,或者没有访问该接口的权限

​ --method:指定http请求方式,如POST、GET、DELETE、PUT等

​ --data:POST请求所携带的参数,如果指定了这个选项,那么请求方式默认是POST

​ --param-del:GET或POST参数默认分隔符,默认是&,如果设置成“;”,那么GET参数格式为

​ ?id=1;name=张三,

​ POST请求方式需要通过配合--data选项来设置

​ --data="id=1;name=张三"

​ --level: 测试的安全等级(1-5, 默认1),值越大,扫描深度越大

​ -p:要测试的参数

​ 如要扫描的url为:

http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#

可以只扫描id参数,通过-p指定,多个字段用逗号分隔

sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=rpdbjcqpqmn0gin5uvsospbpvr; security=low" --dbs -p id

自定义User-Agent

  1. sqlmap的默认user-agent是:

    sqlmap/1.0-dev-xxxxxxx..
    

    默认的user-agent容易被服务器识别,通过--user-agent可以设置

    sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; de) Opera 8.0"
    
  2. 也可以通过随机生成user-agent来访问目标url,通过设置--random-agent打开

    sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --random-agent
    

    设置--random-agent之后,每次请求都将会从sqlmap安装目录的data/txt/user-agents.txt中随机选取一条user-agent来完成请求

Sqlmap通过Http请求头各项参数注入

GET /vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1
Host: test.dvwa.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://test.dvwa.com/vulnerabilities/sqli/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7,cy;q=0.6,la;q=0.5
Cookie: PHPSESSID=rpdbjcqpqmn0gin5uvsospbpvr; security=low
  1. 对cookie进行注入。保存http请求头信息到文件,通过sqlmap -r 文件名来完成对HTTP请求头信息的注入,如果需要对Cookie进行注入,则需要将level设置成2或以上

    sqlmap -r 文件 --level=2
    
  2. Sqlmap通过User-Agent进行注入。如果sqlmap需要对User-Agent进行注入,需要将level设置成3或以上

    sqlmap -r 文件 --level=3
    
  3. Sqlmap通过HOST注入。需要将level设置成5,5是最高扫描深度,会对所有HTTP头请求参数进行扫描,如Cookie、User-Agent、Referer..等

    sqlmap -r 文件 --level=5
    
    
  4. Sqlmap对Referer进行注入,需要将level设置成3或以上

    sqlmap -r 文件 --level=3
    
    

为HTTP请求设置额外的头信息

  1. 通过设置--headers指定额外的头信息或修改已有的头信息,以下命令修改User-Agent为”dagger“,并添加了一个“New Header”头参数,“\n”作为多个HTTP头参数的分隔符

    sqlmap -r 文件 --headers="User-Agent: dagger\nNew Header: New Header Value"
    
    
  2. -H和--header指定单个HTTP头参数,--headers可以一次指定多个HTTP头参数

  3. 也可以通过设置sqlmap.conf配置文件下的[Request]配置完成对HTTP请求头参数的修改

设置HTTP协议认证参数

  1. 访问目标站点时,如果弹出以下对话框,这表明需要通过HTTP认证才能继续访问

image.png

  1. 通过--auth-type指定认证类型,--auth-type支持的类型:Basic、Digest、NTLM

  2. 通过--auth-cred设置认证需要的用户名和密码,语法为username:password

    sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --auth-type="Basic" --auth-cred="username:password"
    

设置代理扫描URL

  1. 去网上找几个免费的代理IP,https://www.kuaidaili.com/free/

  2. 通过--proxy指定代理IP扫描目标URL

    sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --proxy="http://182.105.15.143:9000" --banner 
    
  3. Sqlmap中设置代理的参数:***--proxy***、***--proxy-cred***、***--proxy-file***、***--ignore-proxy***

    --proxy-cred:设置代理服务器的认证信息,语法与--auth-cred等同

    --proxy-file:从文件中读取多个代理访问目标URL

    http://182.105.15.143:9000
    http://1.197.10.229:9999
    http://120.83.106.239:9999
    
    

    --ignore-proxy:忽略系统默认的代理设置,针对本地站点的访问时,添加这个参数可以避免使用系统代理访问本地站点

Sqlmap设置Tor隐藏网络

​ --tor:开启tor连接

​ --tor-port:指定tor端口

​ --tor-type:指定tor的类型,支持HTTP、HTTPS、SOCKS4、SOCKS5四种类型

​ --check-tor:测试sqlmap中的tor是否可用

  1. Ubuntu安装tor

    apt install tor
    
    
  2. 开启tor服务

    service tor start
    
    
  3. 查看tor运行状态

    service tor status
    
    

    说明已开启tor服务

image.png

  1. 匿名访问目标站点

    sqlmap -u "https://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --tor --tor-type=HTTPS --banner
    
    

Sqlmap设置延迟访问

​ 默认情况下,Sqlmap是不会设置延迟的,如果某些站点对访问频率过快的请求做了限制,那么就很容易检测出这不是正常的连接,有可能会导致被禁止访问

​ Sqlmap可以通过***--delay***设置延迟时间,单位是秒

​ 每次访问间隔0.5秒

sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --delay=0.5

Sqlmap设置超时时间和重试次数

​ --timeout:设置连接最大等待时间,如果超过了这个时间,这判定本次连接超时,默认30秒

​ --retries:设置连接失败后的重试次数,默认重试3次

​ --ignore-timeouts:忽略连接超时时间,那么sqlmap会一直等待,直到连接成功为止

​ sqlmap超时时间为10秒,若失败后重试3次

sqlmap -u "http://test.dvwa.com/vulnerabilities/sqli/?id=1&Submit=Submit#" --timeout=10 --retries=3

Sqlmap设置随机化参数

  1. 通过***--randomize***为指定参数的每次请求设置一个随机值

    sqlmap -u "http://test.dvwa.com/sqli/Less-1?id=1" --randomize=id --banner
    
    
  2. 通过wireshark抓包可以看到,每次的请求id都会随机变化

image.png

Sqlmap过滤日志

​ --scope:过滤出指定范围的请求,可以是Python正则表达式

​ 通过-l指定burpsuite请求日志log,过滤出其中指定范围的请求

sqlmap -l burp.log --scope="(www)?\.(.*)\.(com|net|org)"

​ --skip-urlencode:不进行URL加密,如果服务端不遵循URL加密规则,则可以设置此项

Sqlmap设置忽略401报错

​ 如果测试时偶尔返回HTTP错误401(未经授权的访问),如果想不提供凭证的情况下继续访问,可以使用--ignore-401来忽略这个401错误

​ Sqlmal访问目标站点需要客户端证书来证明自己的身份时,需要带上--auth-file参数来携带证书请求,应该是一个PEM格式的文件,其中包含证书和密钥

sqlmap -u 目标站点 --auth-file=PEM文件

Sqlmap设置安全模式访问

​ 避免多次请求失败后会话被销毁

​ --safe-url:目标URL

​ --safe-post:指定POST参数

​ --safe-req:读取HTTP请求文件,如Burpsuite请求log

​ --safe-freq:对应多条--safe-req

# Jenkins # RabbitMQ # Zookeeper # IDEA # Logstash # Kibana # ELK # NIO # Netty # Spring Cloud # Golang # DataX # Elasticsearch # React Native # Mysql # H2 # Socket # Spring Boot # Kafka # Mybatis # Sqlmap # Vue # Postgresql # Docker # Vert.x # Flutter # Flink # Redis
Sqlmap学习笔记(三)
Sqlmap学习笔记(一)
  • 文章目录
  • 站点概览
会Coding的猴子

会Coding的猴子

57 日志
19 分类
28 标签
RSS
Github
Creative Commons
© 2021 会Coding的猴子
由 Halo 强力驱动
|
主题 - NexT.Gemini v5.1.4

湘ICP备18011740号