• Sqlmap学习笔记(二)


    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”头参数,“ ”作为多个HTTP头参数的分隔符

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

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

    设置HTTP协议认证参数

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

      image-20191203215946994

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

    3. 通过--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的类型,支持HTTPHTTPSSOCKS4SOCKS5四种类型

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

    1. Ubuntu安装tor

      apt install tor
      
      
    2. 开启tor服务

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

      service tor status
      
      

      说明已开启tor服务

      image-20191203222144461

    4. 匿名访问目标站点

      sqlmap -u "http://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-20191203224106189

    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

  • 相关阅读:
    负载均衡软件LVS 三种实现模式对比
    论文学习笔记:High-level pattern-based classification via tourist
    论文学习笔记:A Network-Based High Level Data Classification
    第四章--度相关性和社团结构(复杂网络学习笔记)
    第三章--网络基本拓扑性质(复杂网络学习笔记)
    第二章--网络与图(复杂网络学习笔记)
    神经网咯基础-deeplearning.ai【笔记】
    前端Jquery-Ajax跨域请求,并携带cookie
    Django中解决跨域请求问题
    1- 基本概念(复杂网络学习笔记)
  • 原文地址:https://www.cnblogs.com/dagger9527/p/11974272.html
Copyright © 2020-2023  润新知