2019“黃鶴杯”全國(guó)總決賽 WEB Write Up ——yzddMr6

前言

三天趕了兩場(chǎng)比賽

黃鶴杯體驗(yàn)極佳 财骨,比某500空間好到不知哪里去了

web就兩個(gè)題,一開(kāi)始就打穿了

于是本菜雞就開(kāi)始了劃水運(yùn)動(dòng)hhhhh

web1

web1是個(gè)thinkphp5

掃一下目錄有個(gè)www.zip

打開(kāi)后看到源碼

image

有注冊(cè) 有登錄按鈕,然后看源碼的意思是讓你成為admin用戶(hù),然后可以得到一個(gè)hint來(lái)進(jìn)行下一步

image

Userinfo.php

<?php

namespace app\index\controller;

use think\Controller;
use think\Db;
use think\Request;
use think\Validate;

class Userinfo extends Controller
{
    public function user(Request $request)
    {
        $session = $request->session('username');
        if($session === 'admin')
        {
            return view('user',['info'=>'welcome admin!!','flag'=>'This is your hint:   <br>hint{xxxxxxxxxx}']);
        }
        else{
            return view('user',['info'=>"hello {$session}",'flag'=>'This is your hint:   <br>flag{}<br>maybe the admin have some hints:)']);
        }
    }

    public function change()
    {
        return view();
    }

    public function changeinfo(Request $request)
    {
        $dbuser ='*****';
        $dbpass ='*****';
        $dbname ="study";
        $host = 'localhost';
        @error_reporting(0);
        @$con = mysqli_connect($host,$dbuser,$dbpass,$con);
        // Check connection
        if (!$con)
        {
            echo "Failed to connect to MySQL: " . mysqli_error();
        }
        @mysqli_select_db($con,$dbname) or die ( "Unable to connect to the database: $dbname");


        $post = $request->post();
        $username = $request->session('username');
        $pass = $post['password'];
        $curr_pass = $post['current_password'];
        $validate = Validate::make(['password'=>'min:3|confirm']);
        $status = $validate->check($post);
        if($status){
            if (preg_match("/select|update|delete|insert|into|set|;|between|regexp|like|rlike|=|substr|mid|ascii|join|char|order|count|rand|floor|group|extractvalue|updatexml|exp|concat|outfile|\(|\)/i", $curr_pass) || preg_match("/select|update|delete|insert|into|set|;|between|regexp|like|rlike|=|substr|mid|ascii|join|char|order|count|rand|floor|group|extractvalue|updatexml|exp|concat|outfile|\(|\)/i", $pass)) {
            $this->success('go out!! hacker','/xinan/public/index/index/index');
            } else {
                $sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
                $res = mysqli_query($con,$sql) or die('You tried to be smart, Try harder!!!! :( ');
                $row = mysqli_affected_rows();
                if($row = 1){
                    $this->success('修改成功啦','/xinan/public/index/login/index');
                }else {
                    $this->error('修改失敗腊敲,請(qǐng)聯(lián)系管理員');
                }

            $this->error($validate->getError());
        }
    }
}

但是過(guò)濾了一大堆關(guān)鍵字,防止注入

然后翻翻目錄發(fā)現(xiàn)兩個(gè)有意思的地方

  1. 根目錄下有個(gè)shell.php
  2. 出題人的log沒(méi)刪维苔。兔仰。。

shell.php

 <?php 
echo "這個(gè)是內(nèi)網(wǎng)的操作頁(yè)面蕉鸳,只允許內(nèi)網(wǎng)人員使用,get_cmd";
echo "<br />";
if($_SERVER["REMOTE_ADDR"] === "127.0.0.1") 
{ 
    
     
       @eval(system($_GET["cmd"]));
     
} 
else 
      { 
        echo "您的ip是".$_SERVER["REMOTE_ADDR"]."<hr/>"."不是我們的內(nèi)網(wǎng)機(jī)器"."<hr/>"."這是一臺(tái)內(nèi)網(wǎng)機(jī)器乎赴,只接受本機(jī)請(qǐng)求"."<hr/>"; 
        return false; 
      } 

是個(gè)cmd一句話,但是必須127.0.0.1訪問(wèn)

猜想可能hint就是個(gè)ssrf

然后看log

image

翻翻里面有沒(méi)有什么有意思的東西

想起了國(guó)賽決賽直接把payload放log里了hhhh

前面的都沒(méi)啥意義潮尝,就是出題人調(diào)試的過(guò)程

然后看到了這個(gè)

image

印證猜想榕吼,就是給你一個(gè)可以ssrf的地址讓你去打shell.php

訪問(wèn)了一下100e8a82eea1ef8416e585433fd8462e.php結(jié)果是404

說(shuō)明可能實(shí)際題目中改了名字,這時(shí)候就必須要拿到hint才可以得到真實(shí)地址

然后正在看他是怎么才能成admin的時(shí)候勉失,平臺(tái)發(fā)了一個(gè)公告

image

猜想是怕有些戰(zhàn)隊(duì)掃不到源碼備份故意放的水

下載下來(lái)后還真是

但是!!!

主辦方直接把真實(shí)環(huán)境的源碼給發(fā)出來(lái)了

image

阿偉死了

直接找到55ceedfbc97b0a81277a55506c34af36.php

<?php 
   echo 'please get $url';

    $url = $_GET['url'] ?? false; 
    if($url)  
    { 
    $a = preg_match("/gopher/i", $url);
        if ($a==0)
        { 
            
            echo "<br />";
            echo "操作錯(cuò)誤羹蚣,你是我們的內(nèi)網(wǎng)人員嗎";
            exit(); 
            
        } 

            $ch = curl_init(); 
            curl_setopt($ch, CURLOPT_URL, $_GET["url"]); 
            curl_setopt($ch, CURLOPT_HEADER, 0); 
            curl_exec($ch); 
            curl_close($ch); 

     } 

?>

果然是個(gè)ssrf,直接跳過(guò)了成為admin這一步

payload中還必須有g(shù)opher這個(gè)單詞乱凿,這是明晃晃的暗示啊hhhh

然后就是生成gopher二進(jìn)制流來(lái)打

然而實(shí)際中被坑的不輕顽素。。徒蟆。

開(kāi)始一直是400胁出,不知道為什么

image

心里想著woc這tm還有幺蛾子

被坑了好久。段审。全蝶。然后沒(méi)辦法讓隊(duì)友看,給他說(shuō)了思路后隊(duì)友直接一個(gè)payload打過(guò)去flag出來(lái)了

image

喵喵喵寺枉?抑淫?? 為毛我一直400

最后才發(fā)現(xiàn)一個(gè)坑人的地方

就是你在編碼payload的時(shí)候要用burp的右鍵send to decoder

而不能用復(fù)制粘貼姥闪,否則格式會(huì)亂始苇,阿帕奇就400

但是我一直都是這么打的啊。筐喳。催式。不知道為什么今天會(huì)出錯(cuò)

結(jié)果拿了四血往弓,菜雞大哭.jpg

web2

web2是個(gè)smarty的模版注入

這是拿到shell后看的源碼

image

就是兩個(gè)接口 一個(gè)獲取ip,一個(gè)獲取xff

ip不可控蓄氧,xff可控,帶入到模版文件里槐脏,就形成了模版注入

看下版本號(hào)

image

因?yàn)楸荣愔性试S聯(lián)網(wǎng)(好評(píng))喉童,所以查查對(duì)應(yīng)的版本有沒(méi)有0day

找到這兩篇

https://xz.aliyun.com/t/1983

第一篇是發(fā)現(xiàn)他必須自定義一個(gè)注冊(cè)模版的類(lèi)才可以插入payload,然而這個(gè)題里直接是sha1了一遍路徑顿天,所以打不了

http://www.tiaozhanziwo.com/archives/386.html

第二篇是過(guò)濾了php標(biāo)簽堂氯,所以無(wú)法直接命令執(zhí)行

翻翻smarty手冊(cè)

https://www.smarty.net/docs/zh_CN/language.function.include.php.tpl

發(fā)現(xiàn)可以用include看源碼

然而不能跨目錄看,就很雞肋

image

繼續(xù)翻手冊(cè)看到一個(gè)eval標(biāo)簽

image

就rce了牌废。咽白。。

image

本來(lái)想直接system 來(lái)cat flag 結(jié)果是500沒(méi)回顯

猜想可能有函數(shù)禁用

找了一下確實(shí)是的鸟缕,還有open basedir

image
image

寫(xiě)個(gè)shell

image

蟻劍連接

image

無(wú)法切換到根目錄晶框,需要bypass open basedir

image

蟻劍大法好,直接上大表哥的bypass disable function插件

image

拿到flag

image

手速慢懂从,只拿了個(gè)三血

最后

嘲諷的是隊(duì)友把我一直在看的這個(gè)ssrf做了授段,我把隊(duì)友一直在看的smarty做了hhhh(隊(duì)友tql企圖當(dāng)場(chǎng)挖框架0day)

這次比賽水的成績(jī)還不錯(cuò),見(jiàn)到了一堆巨佬

零食跟自助餐是真的好吃

可惜趕飛機(jī)沒(méi)趕上比賽前一晚上的游艇觀光番甩,感覺(jué)損失一個(gè)億

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末侵贵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缘薛,更是在濱河造成了極大的恐慌窍育,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宴胧,死亡現(xiàn)場(chǎng)離奇詭異漱抓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)恕齐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)辽旋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人檐迟,你說(shuō)我怎么就攤上這事补胚。” “怎么了追迟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵溶其,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我敦间,道長(zhǎng)瓶逃,這世上最難降的妖魔是什么束铭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮厢绝,結(jié)果婚禮上契沫,老公的妹妹穿的比我還像新娘。我一直安慰自己昔汉,他們只是感情好懈万,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著靶病,像睡著了一般会通。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娄周,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天涕侈,我揣著相機(jī)與錄音,去河邊找鬼煤辨。 笑死裳涛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的众辨。 我是一名探鬼主播调违,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼泻轰!你這毒婦竟也來(lái)了技肩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浮声,失蹤者是張志新(化名)和其女友劉穎虚婿,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體泳挥,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡然痊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屉符。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剧浸。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖矗钟,靈堂內(nèi)的尸體忽然破棺而出唆香,到底是詐尸還是另有隱情,我是刑警寧澤吨艇,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布躬它,位于F島的核電站,受9級(jí)特大地震影響东涡,放射性物質(zhì)發(fā)生泄漏冯吓。R本人自食惡果不足惜倘待,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望组贺。 院中可真熱鬧凸舵,春花似錦、人聲如沸失尖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)雹仿。三九已至,卻和暖如春整以,著一層夾襖步出監(jiān)牢的瞬間胧辽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工公黑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邑商,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓凡蚜,卻偏偏與公主長(zhǎng)得像人断,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子朝蜘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容