2017湖湘杯网络安全大赛Writeup
大赛分为初赛、复赛、决赛。 初赛150道理论题,前300名进入复赛,复赛为夺旗赛(CTF)竞赛模式。
湖湘杯网络安全大赛相关链接:【传送门】
复赛为web渗透,反编译,**,加密&解密 一共15道题。(以下是我们队伍答题的writeup)
Web200
题目:简简单单的上传,没有套路。
答题地址:
首先是在网站进行文件上传。修改Content-Type可绕过上传 ,这个题真的很想吐槽
最后经过各种尝试,get一枚文件包含。想到php://filter
http://114.215.129.72:10080/?op=php://filter/read=convert.base64-encode/resource=flag
get flag
简单的android
题目:关于Android *****的基本操作,对你来说SoEasy
过程:
将apk格式改成zip解压出来
使用d2x2jar反汇编拿到源码
使用工具jd-gui查看源码
直接拿到flag。
Re4newer
题目:逆向基本操作。
过程:
首先查壳,UPX,脱壳工具可以直接脱掉.
载入ida分析,shift+F12搜索字符串,发现字符串(success)
双击进去后,F5定位到关键代码
分析上述代码,取出41D740 等地址中的_DWORD与0×22异或即可得到flag
脚本及执行结果如下
流量分析
题目:
过程:
使用wireshark打开下载的流量包,直接导出HTTP对象,发现flag.zip文件
打开flag.zip 发现内容为rgb值的ce.txt文件(rgb值还原图像相关代码)
经过调试图片高宽和方向,代码如下:
转换成图片后,get flag
Web300
题目:拿个shell就给flag。
答题地址:
访问地址,直接给出源代码,过滤做的很全,并且只允许GET方式提交
参考文章:https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html
最后构造出不被拦截的payload,进行url编码提交
如图上,成功getshell (cat../flag.php)
Encryptor.apk
题目:
过程:
通过分析源码,发现程序需要输入一个密码和一张图片,程序将图片与密码的MD5值逐位循环异或
直接给出解题代码
MISC 300
题目:
过程:
下载后查看是一个pkl文件,用pythonpickle模块打开,发现如下
由第一句话得知 ()里面的数字是黑色像素的坐标,然后通过脚本得到图片,脚本以及图片如下
查看该图片发现图片为美国经典漫画《卡尔文与霍布斯虎》中的卡通人物,其中作者是
比尔·沃特森(BillWatterson)。根据ctf中的套路,将其改成小写的billwatterson提交flag。
热身运动(题目已更新)
过程:
图片背景是一个8X8的宫格,左上角第一个编号为0,横向编号,右下角最后一个编号为63,按照GIF中,老虎出现的顺序,转换为数字是:
25,38,49,33,25,55,44,49,29,5,60,49,13,21,61,38,29,22,57,46,30,23,52
8X8=64,联系到Base64,查看base64表,将数字转换为对应的字母或数字
转换之后是ZmxhZ3sxdF8xNV9mdW5ueX0,对该字符串使用base64解码,即得到flag
pyc分析
题目:pyc逆向分析,解密enc
过程:
将pyc用工具还原成py,发现是一行python代码
使用lamda和for var in value进行混淆,分析源码可知,该代码会丢失原始数据的最高两位,只有 6位有效,但是通过转换的table的 长 度只有94,所以高8位是0,高7位可能为0或1,根据算法写出逆算法,分 别 求高7位为1和0 的情况,代 码如下图:
执行结果:
其中“hhhhhqqqqKeyd9733c070b2138e5fsssfffffff”"”"”"”"”"”"””是高7位为0的情况。
“>>>>>{{{{g;4:,*&&/#*#.%$&+;(<}}}<<<<<<<xxxxxxxxxxxxx”是高7位为1的情况。
根据题目,只取{}中的内容,为g;4:,*&&/#*#.%$&+;(<或Keyd9733c070b2138e5f,根据Key分析,可能的原字符串为Key:9733c070b2138e5f,提交Key后面的内容,正确,所以9733c070b2138e5f即为flag
最后这次比赛还是学到了很多东西,欢迎各路师傅交流。
*本文作者:寻梦小生,转载请注明来自 FreeBuf.COM
- 上一篇:OpenATS续篇:搭建自己的卫星地球站
- 下一篇: 认证云安全专家(CCSP)考试攻略
这些评论亮了