2017湖湘杯网络安全大赛Writeup

大赛分为初赛、复赛、决赛。 初赛150道理论题,前300名进入复赛,复赛为夺旗赛(CTF)竞赛模式。

湖湘杯网络安全大赛相关链接:【传送门

复赛为web渗透,反编译,**,加密&解密 一共15道题。(以下是我们队伍答题的writeup)

Web200

题目:简简单单的上传,没有套路。
答题地址:

http://118.190.87.135:10080/

http://114.215.129.72:10080/

http://118.190.86.101:10080/

2017湖湘杯网络安全大赛Writeup

首先是在网站进行文件上传。修改Content-Type可绕过上传 ,这个题真的很想吐槽

2017湖湘杯网络安全大赛Writeup

最后经过各种尝试,get一枚文件包含。想到php://filter

http://114.215.129.72:10080/?op=php://filter/read=convert.base64-encode/resource=flag

get flag

2017湖湘杯网络安全大赛Writeup

2017湖湘杯网络安全大赛Writeup 

简单的android

题目:关于Android *****的基本操作,对你来说SoEasy

过程:

将apk格式改成zip解压出来

使用d2x2jar反汇编拿到源码

2017湖湘杯网络安全大赛Writeup

使用工具jd-gui查看源码

2017湖湘杯网络安全大赛Writeup

直接拿到flag。

Re4newer

题目:逆向基本操作。

过程:

首先查壳,UPX,脱壳工具可以直接脱掉.

2017湖湘杯网络安全大赛Writeup

载入ida分析,shift+F12搜索字符串,发现字符串(success)

2017湖湘杯网络安全大赛Writeup

双击进去后,F5定位到关键代码

2017湖湘杯网络安全大赛Writeup

分析上述代码,取出41D740 等地址中的_DWORD与0×22异或即可得到flag

脚本及执行结果如下

2017湖湘杯网络安全大赛Writeup 

流量分析

题目:

2017湖湘杯网络安全大赛Writeup

过程:

使用wireshark打开下载的流量包,直接导出HTTP对象,发现flag.zip文件

2017湖湘杯网络安全大赛Writeup

打开flag.zip 发现内容为rgb值的ce.txt文件(rgb值还原图像相关代码)

经过调试图片高宽和方向,代码如下:

2017湖湘杯网络安全大赛Writeup

转换成图片后,get flag

2017湖湘杯网络安全大赛Writeup

Web300

题目:拿个shell就给flag。

答题地址:

http://114.215.71.135:10080/

http://114.215.133.202:10080/

http://118.190.77.141:10080

2017湖湘杯网络安全大赛Writeup

访问地址,直接给出源代码,过滤做的很全,并且只允许GET方式提交

参考文章:https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html

最后构造出不被拦截的payload,进行url编码提交

2017湖湘杯网络安全大赛Writeup

如图上,成功getshell  (cat../flag.php)

2017湖湘杯网络安全大赛Writeup

Encryptor.apk

题目:

2017湖湘杯网络安全大赛Writeup

过程:

通过分析源码,发现程序需要输入一个密码和一张图片,程序将图片与密码的MD5值逐位循环异或

2017湖湘杯网络安全大赛Writeup

直接给出解题代码

2017湖湘杯网络安全大赛Writeup

2017湖湘杯网络安全大赛Writeup

MISC 300

题目:

2017湖湘杯网络安全大赛Writeup

过程:

下载后查看是一个pkl文件,用pythonpickle模块打开,发现如下

2017湖湘杯网络安全大赛Writeup

由第一句话得知 ()里面的数字是黑色像素的坐标,然后通过脚本得到图片,脚本以及图片如下

2017湖湘杯网络安全大赛Writeup

2017湖湘杯网络安全大赛Writeup

查看该图片发现图片为美国经典漫画《卡尔文与霍布斯虎》中的卡通人物,其中作者是

比尔·沃特森(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表,将数字转换为对应的字母或数字

2017湖湘杯网络安全大赛Writeup

转换之后是ZmxhZ3sxdF8xNV9mdW5ueX0,对该字符串使用base64解码,即得到flag

2017湖湘杯网络安全大赛Writeup 

pyc分析

题目:pyc逆向分析,解密enc

过程:

将pyc用工具还原成py,发现是一行python代码

使用lamda和for var in value进行混淆,分析源码可知,该代码会丢失原始数据的最高两位,只有 6位有效,但是通过转换的table的 长 度只有94,所以高8位是0,高7位可能为0或1,根据算法写出逆算法,分 别 求高7位为1和0 的情况,代 码如下图:

2017湖湘杯网络安全大赛Writeup

执行结果:

2017湖湘杯网络安全大赛Writeup

其中“hhhhhqqqqKeyd9733c070b2138e5fsssfffffff”"”"”"”"”"”"””是高7位为0的情况。

“>>>>>{{{{g;4:,*&&/#*#.%$&+;(<}}}<<<<<<<xxxxxxxxxxxxx”是高7位为1的情况。

根据题目,只取{}中的内容,为g;4:,*&&/#*#.%$&+;(<或Keyd9733c070b2138e5f,根据Key分析,可能的原字符串为Key:9733c070b2138e5f,提交Key后面的内容,正确,所以9733c070b2138e5f即为flag

最后这次比赛还是学到了很多东西,欢迎各路师傅交流。

*本文作者:寻梦小生,转载请注明来自 FreeBuf.COM

这些评论亮了

  • 2017湖湘杯网络安全大赛Writeup
    D14tr0y (3级)这家伙太懒了,还未填写个人描述!回复
    freebuf文章图片这边看起来特别不舒服,图片是多大,打开就是多大图片都不能放大的。看都看不清
    )15( 亮了
发表评论

已有 3 条评论

  • 2017湖湘杯网络安全大赛Writeup
    常运  2017湖湘杯网络安全大赛Writeup(5级) c4td0g, 信安从业者,信安爱好者。(各位爷,轻点喷)  2017-12-10 回复 1楼

    咋writeup是抄来的,图片都看不清额?

    亮了(2)
  • 2017湖湘杯网络安全大赛Writeup
    D14tr0y  (3级) 这家伙太懒了,还未填写个人描述!  2017-12-10 回复 2楼

    freebuf文章图片这边看起来特别不舒服,图片是多大,打开就是多大图片都不能放大的。看都看不清

    亮了(15)
  • 2017湖湘杯网络安全大赛Writeup
    142  2017-12-12 回复 3楼

    基本上都是网上搬的原题,原创的基本上没有