本文主要是介绍2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ISCC战线拉得蛮长的,从5月1号一直干到25号。我之前也没参加过ISCC,就第一次参加做题情况来看,除了第一天结束后排名在前100,之后就再也没往上走过,尼玛一直掉啊,每天退步一点点,垂直下降,心疼啊。我一个web手竟然要靠做Misc上分?
就参赛的选手来讲,直观感觉就是HN-大佬真多啊,前面有好多诶??;就题目而言,web前四道题好水啊,不是原题就是改编题,Misc纯脑洞,不解释。
强网杯前练练手
比赛时间:2019年5月1日至2019年5月25日
Writeup
一、Web:
1.web1:
这题改编来的:
直接代码审计,需要GET传两个参数,一个value,一个password。
先看value,通过后面的代码不难看出,value是数组赋值,而且value[$i]的ascii值不能在32到127之间,然后经过chr()把value传到username里,从而进行username的比较,需要使username=‘w3lc0me_To_ISCC2019’,这样看的话矛盾出现了,因为前面的条件限制了我们直接对value赋username所对应的值,既然这样,看看能不能用别的方法。注意到chr()函数在转换时会自动取模256,所以我们只需在相对应的ascii码上加上256就可以。
再看password,主要解决intval()的问题就行了,如果我们传入16进制的数值,intval(password)在这里会直接返回0,但是intval(password+1)在转换时会将16进制数先转换成10进制数再加1,然后输出。
最后构造payload得到flag:
2.web2:
这题考的算是burp的intruder和图形验证码,但是最后是可以试出来的。而且最后的密码是"996"不得不说,还是紧贴时政的?。
三位数字密码直接000-999,关键就是验证码。这道题是图片的,我曾经在蓝鲸CTF打卡练习场里做过另一个含验证码爆破的,但那个比这个简单,直接在burp里设置宏。对于这道题,这是个图片的,所以直接上工具PKAV,最后得到flag:
3.web3:
这题考的二次注入,是sql-libs上的题目,应该是没怎么改动,比较讨厌的是大佬们把能注册的用户名都注册了一遍?,后来实在没办法注册了个"admin ‘#",然后就是常规的修改密码,最后再用admin登陆拿到flag:
4.web4:
这道题其实也是个改编题,来自国外某CTF的一个php审计题目。打开后一段代码,开始审计:
这尼玛有点秀啊,cxk都出来了,怀着一刻好奇心看一下:
呵呵呵,我尼玛动态图:
好了回归正题,开始代码审计,需要GET传参,先是action,直接赋值"auth",比较有意思的是下面的内容,他是想让我们sha256的值相等,一开觉得有点意思,后来又看了看前面的代码,发现一个东西"parse_str()“这是一个变量覆盖的函数,可以查php手册找到,我在别的地方查的手册:
所以一切就变得简单了,我们只要GET传一个key值,然后再传key的sha256值,进行覆盖,我这里取得0,直接就可以得到flag。
5.web5、6:(未完成)
web6这道题的话先注册一个账号,注册这就卡了一会,一开始注册的几个用户名都会显示"false”:
然后继续,找到一段代码,和相关的源码:
然后就没然后了,等着看师傅们的wp了
web5应该是注入,但是没找到登陆口,一开始的话修改一下User-Agent,里面加上一个Union.373,提示输入用户名,密码。这一部分应该是要有注入的了,然后同理,坐等…
二、MISC:
MISC的题目看脑洞了,只要脑洞大,就能拿flag,但是flag的提交格式真是千变万化??。
1.隐藏的信息:
打开文件后是一串进制数,先观察一下,就我当时想的就是应该是8进制,因为没有出现7以上的数,那么直接找对应的ASCII码:
很明显是一段base64编码,直接解码:
2.倒立屋:
这题我尼玛真是神了,先给一张图,直接放stegsolve里分析,然后一个一个试,一开始看到了一个:
我一开始以为没个什么卵用,继续找,找了好长一段时间,啥也没找到,什么方法都试过了,最后又回到这个地方,那就试试这个呗,正着输没用,那就反着来,最后尼玛竟然真是flag,"9102_cCsI"我勒个擦,真是服了。??
3.Welcome:
这题也还好吧,打开后又是一个文本文件,一堆繁体字,还是蛮有规律的繁体字,当时想的是’01’编码或是’—.'之类的,然后就是一个一个试。
先是01,根据他的分组,有两个情况,第一个是以逃开始的文字段编为1;长开头的编为0。另外一个是逃开始的位0,长开头的为1。无论怎样都是8位编为1组,最后在第二组里二进制转码得到flag:
4.最危险的地方就是最安全的地方:
这个也是先打开发现图片文件损坏,没办法看,notepad打开看了一下,里面还有其他的隐藏图片,打开foremost分离出来:
看了一下全部都是二维码,批量解码:
第50个png有问题,winhex看一眼得到flag;
5.无法运行的exe:
打开后一个exe文件,无法运行,惯例notepad看一眼,是一堆编码,姑且当作base64:
然后转一下:
发现出来个png,先把转换出来的转换到本地,后缀名改为png,发现仍然打不开,还是winhex走一波,这里比较靠脑洞的就是要修改一个值"00"改为"0A",再保存到本地,出现了二维码:
解码即可得到flag:
6.High起来!:
这个也是一张图片文件打不开,老套路winhex看一眼,发现文件头不是png的,改一下保存出现二维码,扫一下:
当铺密码解一下:
我一开始以为这就是,后来又想了一下,这题应该还有音频,暂且放着不管。foremost继续分离文件,发现"01.mp3"文件:
然后听了会,嗯还行,继续放到mp3stego下,我一开始没用过这软件,因为之前没遇到过音频隐写,CSDN上搜了一下操作流程,发现有个-P password,第一次没用,啥玩意也没出来,后来想了一下欸,之前的数字好像可以用上了,开始操作:
最后出来txt文件,打开直接转ASCII码,得到flag:
7.他们能在一起吗?:
直接一个二维码,扫码得到一串base64文件,解码:
url再解一下:
出来的东西先留着,因为二维码里还有东西,同样foremost分离出来:
在zip文件夹里有我们想要的东西,但是需要输入密码,直接用前面的那个,放进去得到flag:
8.Aesop’s secret:
打开是一个gif动态图,直接按帧数分离:
一开始以为是个二维码拼接起来发现不是,是个ISCC,还是不知道有啥用,那就stegsolve看一下,发现一段代码:
一开始想着是不是base64,试了一下不是,后来又想了一下应该是有密码之类的,得用上"ISCC",结合题目名称,确定是AES,解码开始,连结两次码,得到flag:
9.Keyes’ secret:
这题蛮狠的,考的键盘编码,看完眼睛都快废掉了,给了一大长串密码,最后的落脚点就是在"{WSXIUYHNBVTRFVBTRFVBQWERTYQAZSCEWSXCDEEFVTYHNMKJTGBNMJUYGRDXCVBMNBVCDRTGHUWSXCFEQWERTYTRFVBWSXNBVCXSWERFRFVGYHNWSXCDEMNBVCDRTGHU}"上面,按照我自己的理解尝试了许多次,可能下面的也存在错的,但是最后提交对了?
1.“WSX”:I; 2.“IUYHNBV”:S; 3.“TRFVB”:C; 4.与3相同; 5."QWERTY"对应的是空格; 6.“QAZSCE”:K; 7.“WSXCDE”:E; 8.“EFVT”:Y; 9.“YHNMKJ+GRDXCVB”:B; 10.“TGBNMJUY”: O; 11.“MNBVCDRTGHU”:R; 12.“WSXCFE”: D; 13.同5; 14.与3相同:C; 15.与1相同:I; 16.“NBVCXSWERF”: P; 17.“RFVGYHN”:H; 18.与7相同:E; 19.与11相同:R;
总结一下{ISCC KEYBOARD CIPHER},提交的格式我记不清了。
这篇关于2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!