<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    A World Restored & A World Restored Again

        A World Restored
        Description:
        nothing here or all the here ps:flag in admin cookie 
        flag is login as admin
        URL http://messbox.2017.hctf.io
        Now Score 674.44
        Team solved 7
        A World Restored Again
        Description: 
        New Challenge !! 
        hint: flag only from admin bot
        URL http://messbox.2017.hctf.io
        Now Score 702.6
        Team solved 6

    A World Restored在出題思路本身是來自于uber在10月14號公開的一個漏洞https://stamone-bug-bounty.blogspot.jp/201...,為了能盡可能的模擬真實環境,我這個不專業的Web開發只能強行上手實現站庫分離。

    其中的一部分非預期,也都是因為站庫分離實現的不好而導致的。(更開放的題目環境,導致了很多可能,或許這沒什么不好的?

    整個站的結構是這樣的:
    1、auth站負責用戶數據的處理,包括登陸驗證、注冊等,是數據庫所在站。
    2、messbox站負責用戶的各種操作,但不連接數據庫。

    這里auth站與messbox站屬于兩個完全不同的域,受到同源策略的影響,我們就需要有辦法來溝通兩個站。

    而這里,我選擇使用token做用戶登陸的校驗+jsonp來獲取用戶數據。站點結構如下:

    2017HCTF

    簡單來說就是,messbox登陸賬號完全受到token校驗,即使你在完全不知道賬號密碼的情況下,獲取該token就可以登陸賬號。

    那么怎么獲取token登陸admin賬號就是第一題。

    而第二題,漏洞點就是上面文章中寫的那樣,反射性的domxss,可以得到服務端的flag。

    為了兩個flag互不干擾,我對服務端做了一定的處理,服務端負責處理flag的代碼如下:

        $flag1 = "hctf{xs5_iz_re4lly_complex34e29f}";
        $flag2 = "hctf{mayb3_m0re_way_iz_best_for_ctf}";
        if(!empty($_SESSION['user'])){
            if($_SESSION['user'] === 'hctf_admin_LoRexxar2e23322'){
                        setcookie("flag", $flag, time()+3600*48," ","messbox.2017.hctf.io", 0, true);
                }
            if($_SESSION['user'] === 'hctf_admin_LoRexxar2e23322' && $_GET['check']=="233e"){
                setcookie("flag2", $flag2, time()+3600*48," ",".2017.hctf.io");
            }
        }

    可以很明顯的看出來,flag1是httponly并在messbox域下,只能登陸才能查看。flag2我設置了check位,只有bot才會訪問這個頁面,這樣只有通過反射性xss,才能得到flag。

    下面我們回到題目。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类