ホームページ > バックエンド開発 > PHPチュートリアル > Alictf web 400 募集[II] 書き込み

Alictf web 400 募集[II] 書き込み

WBOY
リリース: 2016-06-20 12:26:01
オリジナル
1016 人が閲覧しました

この興味深い質問を記録してください

まず第一に、ホームページはログイン ページであり、他の場所で見られる明らかな抜け穴はありません

アバターのアップロードポイントは 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 の知識を調べました

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート