金盾2016 Writeup – [Web] GSA2016

題目

有一個網站GSA2016, 要我們闖進去找Flag

提示

SEO

解題

網站打開後就看到一張圖然後就沒了

但在source中發現了下面這段javascript, 看樣子是用來載入圖片用的

function update(n, f) {
            $.ajax({
                url: 'ShowPhoto.ashx',
                type: 'POST',
                data: f,
                cache: false,
                success: function (data) {
                    $('#m').html('<img class="img-rounded" src="data:image/png;base64,' + data + '" />');
                },
                error: function (errorText) {
                    alert("Wwoops something went wrong !");
                }
            });
        }
        update("kobe-bryant.png", '{"file_name":"a29iZS1icnlhbnQucG5n"}');

從 js 中可以發現他呼叫了 ShowPhoto.ashx 來取得資源, 參數是檔名的base64, 回傳結果也是 base64

Aspx的網站通常都有 web.config 這個設定檔, 因此將其 base64 encode 後向 ShowPhoto.ashx 請求資源

但並這麼做並沒有得到任何內容, 可能猜測的目錄不對, 改送 ../web.config 接著就得到 Web.config 內容

在 Web.config 中發現有用資訊

<!-- Flag file -->
<add key="keyfile" value="54fb3bd9d6052999fbf5bbd397f483d2af35461fec3c1a8886f52109950aeea611a58ddf7c17efb80f7a754272dbd4955d9b974ee506db6e499e5b162fa78480.key" />

看樣子只要猜到檔案位置就收工了, 這時候想到 Aspx 通常會將一些資料放在 App_Data, 因此向 ShowPhoto.ashx 取得這個檔案, Flag Get!

Flag

Live in the present moment!

註記

題目一開始給的提示 SEO 是提示我們去看 robots.txt 這個檔案, 其中 Disallow: App_Data 暗示檔案位置