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 =。=

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