香港六合彩开奖报码器|六合彩马报老钱
首頁 > 網絡新聞 > 正文

【快報】*CTF 2019國際賽安勝再獲佳績,WriteUp看這里!

http://www.ndzuof.shop 發布時間: 2019-04-30 10:01:33 來源:     點擊:

2019年4月29日上午9:00,第五屆XCTF國際聯賽分站賽——*CTF 2019國際賽宣告圓滿落幕。據官方報道,本次賽事共有來自71個國家和地區的1026支隊伍參賽,參賽人數達5078人。安勝ISEC團隊本著學習交流、共同提高的目的,與各隊伍同臺競技、互相切磋,最終獲得第五名的成績

榜單結果

本次比賽面向全球CTF戰隊,在全球不同地點同時開賽。從4月27日早上9:00開始,比賽持續48小時,賽題分為pwn、reverse、crypto、web、misc幾大類型,偏重于二進制,考察點從基本的匯編指令,到更深一步的高級漏洞利用都有涉及,需要參賽選手有較強的二進制基礎,更考驗隊員之間的默契配合程度

想知道我們的參賽選手們是如何見招拆招、攻克一道道難題的嗎?別急,WriteUp解題思路看這里.....

一、MISC

misc1:She

Enjoy the game!  

HINT:Please combine numbers in the order of the rooms

解題:

通過分析下載文件發現是使用RPG Makr XP制作的一款游戲,下載RPG Maker XP V1.03 .exe軟件,創建新項目,將項目中的Game.rxproj放到She目錄下,打開文件即可進行游戲編輯,通過分析代碼將第一只BOOS的攻擊改為1。

圖1

通過老鷹后,顯示一些提示,會有幽靈找你,碰到要重新開始,通過編輯器將幽靈刪除

圖2

有9個門,測試后37無條件打開,雙擊門判斷門打開的前提條件,發現382157這個順序,按照該順序獲取到的數值是371269,按照房間順序排列得到213697

圖3

根據提示將拿到的數字進行MD5加密,得到d6f3fdffbcb462607878af65d059f274,即為flag。

misc2:babyflash

Recently my younger brother learnt how to make a flash.

Here’s his first work.

解題

JPEXS反編譯flash.swf得到441張黑白圖片和1個mp3文件。

圖4

令黑的為1、白的為0利用python處理。

圖5

圖6

生成二維碼。

圖7

得到*ctf{half_flag_&,用audacity打開mp3以頻譜圖顯示。

圖8

最后flag*ctf{half_flag_&&_the_rest}

misc3:otaku

One day,you and your otaku friend went to the comic expo together and he had a car accident right beside you.Before he died,he gave you a USB hard disk which contained this zip.Please find out his last wish.

提示:The txt is GBK encoding.

解題:

winhex等工具打開壓縮包去掉偽加密09標識,得到doc的一段話。

圖9

Hello everyone, I am Gilbert. Everyone thought that I was killed, but actually I survived. Now that I have no cash with me and I’m trapped in another country. I can't contact Violet now. She must be desperate to see me and I don't want her to cry for me. I need to pay 300 for the train, and 88 for the meal. Cash or battlenet point are both accepted. I don't play the Hearthstone, and I don't even know what is Rastakhan's Rumble.

利用python處理,將此寫入txt,編碼為gbk

根據注釋:

壓縮軟件:winrar版本 5.70 beta 2

配置:zip壓縮文件(低壓縮率)

壓縮方式:標準

下載winrar

圖10

壓縮后進行明文攻擊,密鑰從1開始。

圖11

成功得到口令My_waifu,再解壓圖片zsteg flag.png,最后得到flag*ctf{[email protected]}

圖12

misc4:Sokoban

Let's play another Sokoban game.

You only have 60 seconds to complete 25 levels,the number of boxes is greater than or equal to 1,less than or equal to 3,and the map size is at most 12*10.

$ nc 34.92.121.149 9091

解題:

根據題目提示進行nc連接。

圖13

發現是一個推箱子的游戲,需要找到最優解(路徑最短),且在60秒內完成25個關卡。

C++編程實現找到最優解并提交通關。

文件夾下兩個CPP為源文件,a為編譯后的腳本部分代碼:

圖14

運行結果:

圖15

二、CRYPTO

crypto1:babyprng

$ nc 34.92.185.118 10002

解題:

根據題目提示進行nc連接。

圖16

下載py文件,根據程序了解,需要輸入四個字符(字母數字)和隨機的一串字符進行sha256加密,密文要等于給的那串。

py腳本:

圖17

輸入正確的四個字符后進入下一步,需要輸入十六進制數。按題目中的程序,十六進制數有取值范圍,使用py腳本暴力破解符合條件的數

圖18

圖19

由于原本題目中的size為100000,本地根本跑不出來,修改size數值后獲取了一個十六進制數。

圖20

crypto2:babyprng2

nc 34.92.185.118 10003

解題:

第二題和第一題類似,第一步還是sha256,只是第二步多了些十六進制數匹配和數值修改

py腳本:

圖21

圖22

這里size數值取1,十六進制數為5個,得到結果0004350106。

但在本地測試數值是否正確時,提交幾遍后才出flag。在賽題環境中手動提交一直失敗,而且在重新跑過腳本后出來的結果又不同,懷疑為腳本問題,但本地提交多次都成功,可能為最后隨機數的問題,最終以一個PHP腳本提交答案。

圖23

獲取flag。

圖24

crypto3:notcurves

!!!this challenge is under maintaince. !!! For the sake of fairness you can download the old script.

this challenge is up now! the file has been updated, you can download the old script at here.$ nc 34.85.45.159 20005

解題:

分析Python腳本源程序,發現其是兩層加密,第一層是破解SHA256,求出輸入字符的前4個字符,其破解SHA256的Python源代碼如下。

圖25

將上面破解求出的4個字母字符,提交服務器即可進入第二層破解算法。

圖26

分析上述代碼,進入這里的時候,前面很多應該是擾亂代碼,輸入”5”可進入下一步,輸入一個坐標點(u,v),使其滿足條件:(u*v)%p==0,這里的p是兩個15比特素數的乘積,嘗試多次輸入兩個素數,才使其滿足前面的條件。后來總結時發現其實是可以輸入(0,0)的,這可能是出題者的一個失誤。

圖27

三、WEB

web1:mywebsql

圖28

提示:

圖29

解題:

通過admin/admin弱口令登錄。

圖30

找到一個Mywebsql漏洞:

https://github.com/eddietcc/CVEnotes/blob/master/MyWebSQL/RCE/readme.md

Create a test table (code) and write a shell code in this table.

圖31

Shell地址:

圖32

使用perl反彈shell。

圖33

轉義單引號并url編碼,根目錄下有readflag和flag文件,執行readflag腳本提示一個算術題,需提交答案。由于無法直接輸入,所以需要腳本實現結果的輸入

圖34

使用PHP的proc_open來執行/readflag,并算出隨機算式的答案重定向到程序中獲取flag,附上腳本代碼。

圖35

web2:Echohub

how2stack

圖36

提示:

run.sh =>#!/bin/sh service --status-all | awk '{print $4}'| xargs -i service {} start sleep infinity;

I am sorry for that `sandbox.php` is basically no use, so this challenge can be solved more easily.

解題:

進入題目,發現在data中提交任意字符都會返回phpinfo,而提交長度過大時會提示emmmmmm...Don\'t attack me!,查看頁面代碼,發現提示:

圖37

提交之后得到源代碼。查看phpinfo,發現disable_functions禁用很多,但是move_uploaded_file函數拼錯了,所以可以利用其上傳文件到指定目錄,但open_basedir中的目錄不存在,所以實際上無法使用。發現stream_socket_client、fputs、fgets、create_function這些函數沒有禁止,所以可以利用其構造一個簡易的phpshell

查看index.php代碼,通過混淆加密的方式加密代碼,解密之后,查看源代碼,提示“emmmmmm...Don\'t attack me!”時應該是出現了棧溢出,采用srand函數使用時間戳對隨機數進行布種,而時間戳可以通過phpinfo中的server變量得到,故本題中的隨機數都可以預判

預判其棧結構

圖38

修改index.php代碼,將關鍵部分改掉,改成可以生成poc的程序。

圖39

圖40

圖41

圖42

這樣就形成簡易版poc程序,可以得到一個在30秒后執行命令的exp,由于php的create_function函數存在注入漏洞,通過該poc程序,調用create_function函數,就可以執行任意代碼。

這就是構造完畢的exp,在服務器上觀察一個端口,該exp成功執行后,就可以得到一個php的shell,可以執行任意php代碼,執行結果通過ob_flush();flush();可以輸出到頁面上,也可以賦值給$s變量回顯到shell上。

圖43

圖44

接下來就跟0ctf-2019一樣,這里引用某篇文章說明。

圖45

雖然這個沒有真正做出來,但指明了方向,即使用php-fpm修改php_value來執行命令,php_value中雖然無法修改disable_functions,但是可以修改sendmail_path的地址達到命令執行的效果,而雖然禁用了mail,但是php中發送郵件的函數很多,例如error_log函數

圖46

然后在發送數據包的地方輸出。(服務器禁用了fsocket系列函數,所以該poc無法正常運行。)

圖47

然后在服務器上再觀察一次端口,將phpshell中得到的BASE64_CODE通過stream_socket_client發送給php-fpm,這樣就能在服務器上運行任意命令了,此時反彈一個cmdshell回來。

圖48

得到cmdshell后,執行readflag,發現輸出跟之前的題目類似,則使用之前題目readflag的程序,通過eval得到flag。

圖49

圖50

四、REVERSE

reverse1:yy

Do you love yy ?

解題:

程序邏輯:

根據給定的規則解析并處理輸入。

思路:

根據yyec可以得到合法字符集:*CTF{abcdefghijklmnopqrstuvwxyz0123456789_};

根據輸入取表更新buffer,使用round_key加密buffer(aes_cbc_encrypt),字符'_'表示進行下一輪處理(重置buffer),將得到的結果與加密串比較;

輸入字符與box的對應關系;

aes_cbc_decrypt即可得到flag;

flag: *CTF{yy_funct10n_1s_h4rd_and_n0_n33d_to_r3v3rs3} 。

reverse2:Obfuscating Macros II

You have seen something like this before,I guess.

解題

程序類似表達式計算。

程序邏輯:

根據輸入的兩個DWORD64進行計算,并與給定的兩個DWORD64比較。

思路:

程序有固定的處理模式: if (xx) { do stuff };

在對應的模式處下斷即可得到完整的處理邏輯。

flag:*CTF{[email protected]}。

reverse3:Matr1x

What information is hidden in the matrix?

解題:

3*3魔方

程序邏輯:

魔方每個面上的點都有1個值,計為DWORD v[6][3][3],根據輸入旋轉魔方,計算每個面上點的值。

sum(corner + center) == 給定的值1,

sum(middle + center) == 給定的值2,

計算每個面上的點與另一個數組的點乘, 得到6個DWORD作為flag輸出。

思路:

3個點集合:corner(4*6)、middle(4*6)、center(6)。

窮舉可以確定每個面center、middle、center的值(每個點的具體順序未確定),計算flag并以'*CTF{..}'作為過濾條件即可得到flag。

flag: *CTF{7h1S_Cu63_is_m4g1c}。

reverse4:fanoGo

Do you kown go & fano encode?

$ nc 34.92.37.22 10001

解題:

Go程序

程序邏輯:

以字典文件corpus.txt初始化編碼器;

if Fano.Decode(輸入) == 給定字符串:輸出flag。

思路:

程序中同時存在Fano.Encode函數,patch程序調用Fano.Encode(給定字符串)并輸出。

flag:*CTF{NUY4a3E5D9186hVzejoyItr7xHBcmOpv}。

五、PWN

pwn1:quicksort

I’m very quick!

$ nc 34.92.96.238 10000

解題:

1.輸入存在棧溢出;

圖51

2.棧溢出覆蓋ptr即可實現任意地址任意寫;

3.修改ptr指向got表,即可泄漏libc基址;

4.修改atoi為system,輸入/bin/sh;即可獲得shell。

py腳本:

圖52

pwn2:girlfriend

new libc, new life.

$ nc 34.92.96.238 10001

解題:

1.Double free; 

圖53

2.申請大于0x400的堆,然后釋放,可以獲得main_aren_top的地址;

3.Libc2.29在free時會檢查free的地址是否已經在tcache中,要先填滿tcache再觸發double free;

4.fastbin attack修改free_hook指向system;

5.觸發free(“/bin/sh;”)。

py腳本:

圖54

圖55

pwn3:babyshell

An easy shellcode

$ nc 34.92.37.22 10002

解題:

遇到0時就停止檢查,在shellcode前加上push 0即可繞過檢查。

py腳本:

圖56

pwn4:blindpwn

Close your eyes!

$ nc 34.92.37.22 10000

checksec:

Arch:amd64-64-little

RELRO:Partial RELRO

Stack:No canary found

NX:NX enabled

PIE:No PIE (0x400000)

file libc:

libc-2.23.so: ELF 64-bit LSB shared object,  

x86-64, version 1 (GNU/Linux),dynamically  

linked, interpreter /lib64/ld-linux-x86-64.so.2,    

BuildID[sha1]=b5381a457906d279073822a5ceb2

解題:

本題沒有提供程序,給了服務器和端口,沒有aslr和棧保護。

1.鏈接后提示"Welcome to this blind pwn!",輸入任意內容,提示"Goodbye!";

2.輸入1個超長字符串,沒有看到"Goodbye!",說明溢出了;

3.確定返回地址的位置,修改返回地址(從0x400000開始),直接有返回輸出;

4.從輸出中得到libc基址,one_gadget get shell。

pwn5:upxofcpp

$ nc 34.92.121.149 10000

解題:

1.用upx脫殼;

2.存在UAF漏洞;

3.upx加殼的堆可執行,可以在堆上構造shellcode;

4.申請一個size為6的vec_0和一個size為10的vec_1,釋放vec_0后,vec_0的vtb便指向堆,然后釋放vec_1,再申請一個size為6的vec_3,直接輸入-1,就可以不破壞vec_0的vtb;

5.同上的方法可以使vtb+0x10也指向堆;

6.在vtb+0x10指向的地方構造shellcode;

7.調用show,觸發vtb+0x10。

py腳本:

圖57

官方題目地址如下,有需要的小伙伴可進行學習探討:

https://github.com/sixstars/starctf2019

以上WriteUp,你get到了嗎?

歡迎大家文末留言,共同交流,

也歡迎志同道合的朋友加入ISEC團隊

未來安勝將繼續砥礪前行,

以專業的姿態守護網絡安全!

安勝作為國內領先的網絡安全類產品及服務提供商,秉承“創新為安,服務致勝”的經營理念,專注于網絡安全類產品的生產與服務;以“研發+服務+銷售”的經營模式,“裝備+平臺+服務”的產品體系,在技術研究、研發創新、產品化等方面已形成一套完整的流程化體系,為廣大用戶提供量體裁衣的綜合解決方案!

我們擁有獨立的技術及產品的預研基地—ISEC實驗室,專注于網絡安全前沿技術研究,提供網絡安全培訓、應急響應、安全檢測等服務。此外,實驗室打造獨家資訊交流分享平臺—“ISEC安全e站”,提供原創技術文章、網絡安全信息資訊、實時熱點獨家解析等。

2018年

承擔全國兩會網絡安保工作;

承擔青島上合峰會網絡安保工作。

2017年

承擔全國兩會網絡安保工作;

承擔金磚“廈門會晤”網絡安保工作;

承擔北京“一帶一路”國際合作高峰論壇網絡安保工作;

承擔中國共產黨第十九次全國代表大會網絡安保工作;

承擔第四屆世界互聯網大會網絡安保工作。

2016年

承擔全國兩會網絡安保工作;

為貴陽大數據與網絡安全攻防演練提供技術支持;

承擔G20峰會網絡安保工作;

承擔第三屆世界互聯網大會網絡安保工作。

2015年

承擔第二屆世界互聯網大會網絡安保工作。

不忘初心、砥礪前行;未來,我們將繼續堅守、不懈追求,為國家網絡安全事業保駕護航!

網友熱評
鄭重聲明:發布本文之目的在于傳播更多信息,并不意味著《網絡新聞網》網站贊同或者否定本文部分以及全部觀點。對文章中所引用的一些數據、圖片來源,我們不保證其是否有針對或攻擊性,如果您對本文內容有疑義,請及時與我們聯系。
明星
  近日,博鰲亞洲論壇2013年年會在瓊海博鰲開幕,第一夫人彭麗媛隨國家主席習...>>[詳細]
  最近因為與吳秀波合作的電影《北京遇上西雅圖》得到不俗的票房湯唯再次受到...>>[詳細]
  1959年,穿著著整潔裙裝,佩戴優雅禮帽的撒切爾夫人。 來源:搜狐女人>>[詳細]
  湯唯in ports  這件墨玉桑蠶絲外套采用了復古風格的羊腿袖,多角度展現女...>>[詳細]
  柳巖  玫紅鉛筆裙  推薦搭配  柳巖現身影院觀影,一身玫紅裙配黑色Cha...>>[詳細]
熱點圖庫
山海關簡介
山海關簡介
秦皇島旅游
秦皇島旅游
我在文成等你,你不來,我不老
我在文成等你,你
巴黎明星扎堆吳莫愁皮裙V吳佩慈秀裸背
巴黎明星扎堆吳莫
徐濠縈造型再被批雷人清純珍珠成往事
徐濠縈造型再被批
西裝皮衣牛款中性外套引領帥氣風潮
西裝皮衣牛款中性
香港六合彩开奖报码器 湖北麻将玩法 福建2017双色球大奖 篮彩预测 快乐10分开奖走势图 澳洲幸运8是什么彩票 幸运赛车开奖记录 12bet娱乐城真人游戏 捕鱼大富翁最新版 河北11选5走势图爱彩乐 足球指数变化最快的网站