この興味深い質問を記録してください
まず第一に、ホームページはログイン ページであり、他の場所で見られる明らかな抜け穴はありません
アバターのアップロードポイントは Web ページから直接取得できます。curl または file_get_contents を使用して行われると推測されます。
ここに SSRF の脆弱性がある可能性があります。
Url の形式は厳密に制限されており、xx.jpg のみにすることができます
しかし、これは問題ありません。nodeJS でルート xx.jpg
を使用してから、 writeHead 302 リダイレクト ヘッダーを出力します。
response.writeHead(302, { 'Location': 'gopher://127.0.0.1:80/'});response.end();
この方法で任意のプロトコルを使用できます
最初は file:// php:// と他のプロトコルを試しましたが、どれも機能しません
暫定版は、curl を使用して実装されていると推測できます
次に、ここで gopher プロトコルを使用して、開いているポートを検出します
予想どおり、11211 の memcached は、地元。
gopher://127.0.0.1:11211/ を使用して memcached にアクセスします
gopher://127.0.0.1:11211/_stats%20items%0d%0a
およびstats item コマンドをリスト
に送信し、
stats cachedump 5 100
を使用してアイテムのキー値をエクスポートします。 ここでは、セッションのシリアル値を取得します。したがって、推測では、php のプロセッサは memcached に設定されています
Use set key flags exptime bytes
新しい Cookie を追加します
その後、Cookie の偽造に成功し、管理者のバックエンドにログインしました
「秘密」ファイルを見た
IP を変更127.0.0.1 の結果は見つかりませんでした
そこで、ソース コードを確認してバックアップをダウンロードしました
グローバル アンチインジェクションはロードされていますが、$_SESSION
は考慮されませんでした
そこで、コンストラクター インジェクションを試し、フラグを取得しました
この質問は、一般的に、gopher と SSRF の知識を調べました