SQLMAP深入分析-使用篇(基础使用、进阶命令、tamper ...
来源:http://www.tudoupe.com时间:2021-12-30

文章目录
- 使用篇
- 基础命令
- 进阶命令
- 输出信息的详细程度
- 目标
- 指定连接时信息
- 指定注入参数
- 指定检测级别
- 指定注入类型
- 枚举信息
- 用例
- 指定数据包注入
- 伪静态注入
- 暴力破解
- 文件操作
- 执行命令
- UDF提权
- 有状态带外连接:Meterpreter & friends
- 使用 Windows 登记表
- 常规选项
- Tamper脚本
- tamper 适用的数据库类型 & 版本
- 带个小说介绍给你
- 编写tamper
- import部分
- priority
- dependencies
- tamper函数
- 代码分析
- 攻防
斯卡尔马普。这是因为这些误解普遍存在。我们进化成脚本男孩了要想变成大佬,它不只是写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写,它涉及写访谈期间经常询问Sqlmap概念。相反,自动化带来了这样的困难。这就是为什么,Sqlmp, 我要吸取教训。
Sqlmp用Python书写,首次用于Python 2. 最新版本1.5使用Python 3, 也用于分析。
- com/sqlmaproject/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlmp/sqlm/sqlm/sqll
- 中文文件:https://sqlmp.com/I'm sorry, Campfire.
- 本文是全球之声Online. com/mzlogin/chinese-opyWriting-Guidelines的特别报导的一部分。
Sqlmap包括以下特征:
- 识别有漏洞的参数
- 为泄漏参数自动选择 SQL 注入技术的适当类型 。
- 确定后端 DBMS 的适当指纹信息 。
- 它还收集尽可能多的指纹信息,提取数据,管理整个数据库服务器,视用户选择的参数而定。
之后我们再研究这些功能性想法
使用篇
基础命令
确定网站是否有 SQL 。
在会议结束时,将提供网站的拷贝。
如果您发现问题,请运行以下命令以列出当前网站下的所有数据库名称。
注意所提供数据库中的所有标签名称 。
应当指出,所提供的数据库具体说明了表中的所有栏目信息。
注出所有指定列数据
在任意环节使用
--dumps
如果标明要使用的数据库,可注明所有数据库中所有表格的所有数据和所有外地信息。--batch
命令自动跳过选择并用默认选项替换它。
进阶命令
使用Sqlmap手册改进了这一节。
输出信息的详细程度
- 0: 仅输出 Python 错误的回溯、 错误和关键信息 。
- 1: 增强一般信息和预警信息产出
- 2: 增加生成的调试信息的数量。
- 2:增加注射有效载荷的输出量
- 5: HTTP额外请求产出
- 5:加强HTTP反应头输出
- 6: 提升输出 HTTP 响应内容 。
目标
注:-d
是一个新的切换选项, 允许您通过 DBMS 守护进程 TCP 端口直接联系目标数据库服务器, 从而使用 SQL 注入技术攻击目标数据库 。
指定连接时信息
提供连接到目的地地址的方法 。
指定注入参数
要测试的参数使用以下选项指定。
提供有效载荷和参数修补的空格脚本。
指定检测级别
sqlmap 的有效载荷来自文本文件。xml/payloads.xml
中载入。
如果 sqlmap 错过了特定的注射, 请按照文字顶部的适当建议注释配置 。
您可以选择自己修改有效载荷以进行测试。
检测水平越高,检测水平越高;默认为1。
- 一级承认Get和Post。
HTTP Cookie 2 级检测
3级 用户代理测试和转介
- 4级4级侦查
5级,让 HIST 头进行测试
越高,越高,越高,越高,违约为1。
- 风险2通过大量不记时的口供检查,增加了默认检测。
- 风险三将加入原始。
OR
Boolean 盲人笔记可能会引发数据库的更改 。
页面对比
选项:--string
,--not-string
,--regexp
和--code
默认区分一个True
查询和False
注入之前和之后产生的结果页的一致性用于评估询问(布林盲人笔记的基本概念)。
然而,这种参考方法并不总是有效的。因为不注射是不可行的。该页面的内容将相应更新。例如,网站上有柜台,还有动态广告横幅和任何动态材料的生成都取决于时间而不是人的投入。为了避免今后发生这种情况,在可行的情况下,sqlmp将试图确定相关代码段退回的请求的内容,并给予适当处理。
如果用户知道, HTTP 状态代码可用于区分。True
查询和False
查询(例如:200
对应True
,401
对应False
然后将相关数据传送到 sqlmap (例如:--code=200
)
开关:--text-only
和--titles
无法关闭临时文件夹:%s。True
查询和False
查询(例如:Welcome
对应True
,Forbidden
对应False
),那么可以使用--titles
根据标题比较,打开开关。
如果在HTTP答复报告中发现不正确的信息(如脚本、嵌入的折叠等),则可以通过页面内容(开关)过滤。--text-only
访问纯文本信息。大部分时间,这是自动测试引擎。
指定注入类型
为调整各种SQL注射战略的测试方法,可采用以下选择:
枚举信息
以下所列选择用于从数据表中的数据库、结构和数据中检索信息。
用例
指定数据包注入
从文档中读取 HTTP 请求, 包括 GET 和 POST 请求 。
txt 文件包含整个 http 请求包, 可以使用 -p 或 txt 文件的 *( asterisk) 位置指定, 特别是如果在输入点后需要闭结语句 。
Cookie注入
当防火墙限制请求的速度时
伪静态注入
暴力破解
当数据库被损坏时,必须强行将姓名和列名除名。
- DBMS(Database Management System,数据库管理系统)是< 5.0版本的 MySQL,它们不具备
information_schema
- 含有系统表格的Microsoft Access数据库称为DBMS。
MSysObjects
默认设置不可读 - 当前会话用户无法读取 DBMS 存储表定义的系统表格。
暴力破解表名
只要开启了--common-tables
, sqlmap 仍然可以识别系统数据表的各个部分。 sqlmap 残酷地试图打破系统表格以查找 DBMS 中存在的共同数据表,而通用数据标签列表则保存在txt/common-tables.txt
,协助用户进行修改
暴力破解列名
开启了--columns
开关, sqlmap 将显示您是否使用暴力来破坏技术。 因此, 即使出现两种假想中的一种, 只要您打开它, 您将能够破解技术 。--common-columns
, sqlmap 仍然可以识别系统数据表的各个部分。 sqlmap 残酷试图粉碎系统表格,搜索 DBMS 中存在的正常数据表列表,共同数据标签列表保存在txt/common-columns.txt
,协助用户进行修改
文件操作
仅支持 MySQL、 MSSQL 和 PostgreSQL, 因此无法进行文件操作 。
前提:
- 用户可以读写访问数据库。
- 有目录读写文件权限
执行命令
支持Just MySQL、MSSQL和PosgreSQL。
前提:
- 用户可以读写访问数据库。
- 有目录读写文件权限
sqlmap 可以在数据库主机服务器操作系统上执行任何命令 。
基本的想法是上传一匹马和一具CMD壳。
当--os-shell
退出后, 删除通过调用后门程序创建的任何上传文件 。
sqlmp 可以上传包含两个用户的自定义函数到 MySQL 和 PostgreSQL 。
分别为
sys_exec()
和sys_eval()
在数据库中创建两个相应的函数, 调用相关函数来运行某个命令, 让用户选择是否打印命令执行结果 。sqlmp 用于 Microsoft SQL 服务器 。
xp_cmdshell
存储过程:如果储存过程终止(默认情况下,MicromicroSQL服务器2005年及以上),sqlmap 将会重新打开它; 如果存储过程不存在, 将会创建它 。Sqlmap会重建它给你。当用户要求标准输出时,Sqlmp将使用任何可获得的SQL注射方法(盲注、注射带、假注射)取得必要的结果。相反,如果不需要相关调查结果的标准产出,Sqlmap 使用堆叠查询方法执行命令 。
如果网络应用程序不接受堆叠查询, 而 DBMS 是 MySQL, 如果后端 DBMS 和 Web 服务器在同一服务器上, 仍然可以使用 。
SELECT
语句中的INTO OUTFILE
,在根目录中放置 shell
UDF提权
通过建立 MySQL 或 PostgreSQL 共享库( 在 Windows 上 DLL),InLinux/Unix, 为共享对象输入用户定义的函数( UDFs) 。然后给 sqlmp 提供共享图书馆本地仓库的 绝密路径 。Sqlmp 决定下一步是将共享库发布到数据库服务器文件系统,还是建立用户定义的功能。当你完成引入UDFs后sqlmap 也可以用来从数据库中删除它们。
使用选项--udf-inject
并按要求运作;必要时也可加以利用--shared-lib
指定共享库的本地文件系统路径通过命令行; 否则, sqlmap 运行时会提示您路径 。
此函数仅适用于 MySQL 和 PostgreSQL 。
有状态带外连接:Meterpreter & friends
开关和选项:--os-pwn
,--os-smbrelay
,--os-bof
,--priv-esc
,--msf-path
和--tmp-path
当 MySQL 被用作后端 DBMS 时,当涉及到 PostgreSQL 或 Microsoft SQL 服务器时,本届会议的利用者一旦能够访问数据库的特征和结构缺陷,就能够使用数据库。Sqlmap 可以通过状态端 TCP 连接将攻击者工作站连接到数据库服务器。根据用户的选择,可以设立一个交互式命令行会话、一个计量师会话或一个图形用户界面会话。
sqlmap 使用 Metasploit 生成 shellcode 和四种不同的技术在数据库服务器上执行。 这些技术如下:
- Via sqlmap, 您可以使用自定义函数 。
sys_bineval()
在数据库内存中运行 Metestloit shellcode。 MySQL 和 PostgreSQL 都通过开关启用了技术 。--os-pwn
启用 - Via sqlmap, 您可以使用自定义函数 。
sys_exec()
上传并运行一个Metaspoit 独立的有效载荷发射机到 MySQL 和 PostgreSQL, 这两台都由 Microsoft SQL 服务器使用。xp_cmdshell()
函数,通过开关--os-pwn
启用 - 执行从数据库服务器到攻击机器( 通过 Metasploit)
smb_relay
SMB反射攻击(MS08-068)通过UNC路径(服务监听)执行Metasploit 贝壳码。uid=0
Linux/Unix,目标DBMS支持该技术,同时通过开关作为Windows管理员运作--os-smbrelay
启用 - 使用微软 SQL 服务器200年和2005年
sp_replwritetovarbin
储存流程堆积的缓冲溢出量 ( MS09-004 从数据库内存运行 Metestloit 贝壳代码 。sqlmap利用自己的优势。自动绕过 DEP 内存保护, 造成问题 。然而,它依靠Metasploit生产贝壳编码。当成功使用时,就付诸行动。通过开关--os-bof
启用
使用 Windows 登记表
条件:
- MySQL、PostgreSQL和Microsoft SQL服务器是DBMS(数据库管理系统)的例子。
- 网上应用程序为堆叠查询提供支持。
- 会话用户必须拥有必要的访问权限。
常规选项
对不起,营火。#ga/useage/uncern https://sqlmp.com/I'm sorry,Campfire.#ga/useage/unclication。#ga/useage/unclication
api:https://sqlmap.campfire.ga/usage/api
Tamper脚本
本节摘自李群的博客:https://aliqun.com/xyz-2020/06/15/Tampering。
要在 sqlap 安装目录的 Tabper 目录中绕过过滤器和 Taber 脚本, 可以用一个 Tabper 脚本在 sqlap 中解析 sql 查询语句 。
tamper 适用的数据库类型 & 版本
TAMPER | MySQL | MSSQL | Oracle | PostgreSQL |
---|---|---|---|---|
apostrophemask | * | * | * | * |
apostrophenullencode | - | - | - | - |
appendnullbyte | * | * | * | * |
base64encode | 4,5,5.5 | 2005 | 10g | - |
between | 5.1 | - | - | - |
bluecoat | * | * | * | * |
apostrophemask | 9.0.3 | 20002005 | - | 9.3 |
charunicodeencode | 4,5.0 and 5.5 | 2005 | 10g | 8.3,8.4,9.0 |
charencode | * | - | - | - |
commalessmid | * | - | - | - |
concat2concatws | * | * | * | * |
equaltolike | * | * | * | * |
greatest | < 5.1 | - | - | - |
halfversionedmorekeywords | 5.0 and 5.5 | - | - | - |
ifnull2ifisnull | * | * | * | * |
informationschemacomment | 4,5.0,5.5 | 2005 | 10g | 8.3,8.4,9.0 |
lowercase | 5 | - | - | - |
modsecurityversioned | 5 | - | - | - |
modsecurityzeroversioned | * | * | * | * |
multiplespaces | * | * | * | * |
nonrecursivereplacement | * | * | * | * |
overlongutf8 | 5.1.56,5.5.11 | 2000, 2005 | N/A | 9 |
percentage | 4, 5.0,5.5 | 2005 | 10g | 8.3,8.4,9.0 |
randomcase | * | * | * | * |
randomcomments | * | * | * | * |
securesphere | 4,5.0,5.5 | 2005 | 10g | 8.3,8.4,9.0 |
space2comment | - | - | - | - |
space2dash | 4.0,5.0 | - | - | - |
space2hash | >= 5.1.13 | - | - | - |
space2morehash | - | 2000, 2005 | - | - |
space2mssqlblank | * | * | - | - |
space2mssqlhash | * | * | * | * |
space2plus | 4,5.0,5.5 | 2005 | 10g | 8.3,8.4,9.0 |
space2randomblank | - | * | - | - |
sp_password | * | * | * | * |
symboliclogical | * | * | * | * |
unionalltounion | * | * | * | * |
unmagicquotes | 4, 5.0,5.5 | 2005 | 10g | 8.3,8.4,9.0 |
uppercase | * | * | * | * |
varnish | * | - | - | - |
versionedkeywords | >=5.1.13 | - | - | - |
versionedmorekeywords | * | * | * | * |
xforwardedfor | * | * | * | * |
带个小说介绍给你
编写tamper
让我们从一个直接的篡改开始: 脊椎瘤. Py.
这个篡改很简单 如果你写了这个 你就得看看里面有什么
- import部分
__priority__
属性- 依赖关系的作用
- 用户定义的函数和 Tabper 函数
import部分
您可以导入 sqlmp 内存库, 内存有大量密封的功能和数据类型, 如上面所显示的 。PRIORITY
就来源于sqlmap/lib/core/enums.py
priority
使用以下选项,您可以指定多个制表板脚本当前制表板的优先级。
dependencies
函数指定脚本是否相关,它可以是空的,例如以下代码:
数据库如下:libcoreenums.py
可以看到全部
tamper函数
主要功能是通过有效载荷参数实现的,有效载荷参数是我们希望跳过的有效载荷的原始 sqlmap 输入,通常随着有效载荷的改变。
和双面有效载荷一样
第二个参数:**kwargs
该数据库载有来自http http 网站标题的数据,可从以下网址查阅:http http http: http: http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http/ http// http// http// http// http// http// http// http/ http/ http// http// http/ http// http// http/ http// http// http//kwargs
中取出headers
数组在进行更改
例如,将 http 网站标题中的 xff 头更改为随机 ip 。
代码分析
攻防
流量分析
入侵检测
隐蔽注入
空白部分将列入下一条。
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|