2015第七屆HCTF

大三狗一隻,第一次寫blog,希望記錄下自己從零開始的CTF之旅(幫助更多人入坑)


一個彩筆和一個逗比

第一次參見正式的CTF,寫寫只做出來的5道題#共三十幾道題啊。。=。=

首先是全部題目的地址:

https://www.zybuluo.com/lightless/note/183904


題目名稱:404 
題目描述:咦,404了 
http://120.26.93.115:12340/3d9d48dc016f0417558ff26d82ec13cc/webI.php 


wireshark抓,分析跟蹤TCP流直接出


所以最後flag: hctf{w3lcome_t0_hc7f_f4f4f4}



題目名稱:fuck === 
題目描述: 
http://120.26.93.115:18476/eff52083c4d43ad45cc8d6cd17ba13a1/index.php 


看看代碼大意是找到兩個字符串不相等但md5的結果又是一樣的,,年輕的我們居然真的去找了 T。T

百度完了解php md5()


後來想想幹脆讓md5()不好使,就把a和b賦值數組好了,flag就出來了


地址後面跟一下這些數都好使:

?a[1]=1&b[2]=1
?a[1]=1&b[1]=2
?a[]=1&b[]=2

?a[1]&b[2]

等。。

最後 Flag: hctf{dd0g_fjdks4r3wrkq7jl}


題目名稱:What Is This 
題目描述:這到底是啥東西?玩玩看?
http://120.26.60.159/WhatIsThis/what-is-this.1d9bb46782a411bdb72ac82590539826 

(如果網址下不了可以到百*雲上下載附件:附件點我)

是一個NES文件,百度一下,小霸王機的文件‘。’

於是下了一個FCEUX.exe打開遊戲完。。。是“赤色要塞”小遊戲。

打通關後背景快速閃過flag,手速截圖如下:


坑爹的飛機,於是猜fuck後面兩位是什麼字母。。對了,每題只能提交三十次答案,

後來比較猥瑣才FUCKYOU,,,居然中了,出題人也是醉了。。

最後flag:ILOVENESFUCKYOUHCGORSA


題目名稱:Andy(你們知道他是誰嗎) 
題目描述:Andy的通關密碼(flag形式不是hctf{xxx},提交時請以hctf{flag}的形式提交。)
http://120.26.60.159/Andy/Andy.apk.f1bc4dcb815253922a6746316890c05e

(如果網址下不了可以到百*雲上下載附件:附件點我

下下來後解壓發現是個Android文件,現學反編譯工具dex2jar和jd-gui。。。

(看不懂的請自行百度dex2jar使用)

最後是這樣:


Make裏經過三個函數後變成如圖1那串字符串,接着就是讀代碼解出來。。。

hdu1s8爲接在input後面的數;

三個函數分別如下:其中有base64和一個自定義的替換和倒敘?



接着把“SRlhb70YZHKvlTrNrt08F=DX3cdD3txmg”這串字符解密,代碼如下:

<span style="font-size:18px;">public static void main(String[] args) {
		// TODO Auto-generated method stub
		 String array1 = "0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z = A B C D E F G H I J K L M E O P Q R S T U V W X Y Z";
		   String array2 = "W,p,X,4,5,B,q,A,6,a,V,3,r,b,U,s,E,d,C,c,D,O,t,T,Y,v,9,Q,2,e,8,P,f,h,J,N,g,u,K,k,H,x,L,w,R,I,j,i,y,l,m,S,M,1,0,O,n,2,G,7,=,F,Z";
		   String[] arrayOfString1 =array1.split(" ");
		    String[] arrayOfString2 =array2.split(",");
		    String after="SRlhb70YZHKvlTrNrt08F=DX3cdD3txmg";
		    			 //OHMxdWRoZDBpMnczcmRuYXk2bjhkbmEE=
		    String ans="";
		    for(int i=0;i<after.length();i++)
		    {
		    	for(int j=0;j<63;j++)
		    	{
		    		if(String.valueOf(after.charAt(i)).equals(arrayOfString2[j]))
		    		{
		    			ans+=arrayOfString1[j];
		    			break;
		    					
		    		}
		    	}
		    }
		    
		    System.out.println(ans);
		   
	}</span>

解出來結果爲:
OHMxdWRoZDBpMnczcmRuYXk2bjhkbmEE=

再base64解碼:


開頭的8s1udh剛好是之前input後加的字符串,去掉即可,

再倒敘輸入就是flag了,最後面的符號忽略,這個是題目的問題。。。


flag:  and8n6yandr3w2i0d


題目名稱:送分要不要?(萌新點我) 
題目描述:這題還需要描述麼?
http://120.26.60.159/EasyMisc/misc50.28c1c3807a6e3ff9da28b5774dc6fbb0 

(如果網址下不了可以到百*雲上下載附件:附件點我)

這題比較坑爹,要按萌萌噠的新人想法。。。

下載下來如果解壓出來發現有個flag.jpg圖片,呵呵噠,如果到這來,就完蛋了,因爲新人是不會去解壓的。。。

其實可以發現flag.jpg文件原來是png格式的圖片,所以原文件十六進制查看後可以發現出現過一次png,並且png前面有一串字符串=。=

新人思路一開始就是找一串能字符直接解密。。。=。=

於是有了如下:



經過base64,base32,base16後得到flag如圖。


剩下的題目沒怎麼看,畢竟too yang。。能力有限,接着要好好系統研究下了。

坐等前20的專業的writeup =。=

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章