首页 > WriteUp > 第二届红帽杯网络安全攻防大赛WriteUp

第二届红帽杯网络安全攻防大赛WriteUp

2018年5月2日 发表评论 阅读评论

其他的WriteUp

2018-redhat-misc&web-writeup By 一叶飘零
第二届红帽杯线上初赛 RedHat 2018 WriteUp By impakho

Misc-签到

题目信息

Flag:flag{redhat_welcome}

提示

1. 提示进入q群218891597,某个管理员的群名片有点特别哦~
2. (一个队伍一个人加群即可)

解题思路

加群之后,有个管理的群名片即为flag

Misc-问卷

题目信息

Flag:flag{我们在广州塔等着你}

提示

问卷调查

解题思路

填写问卷,完成后获得flag


Misc-Not Only Wireshark

题目信息

附件名称:NotOnlyWireshark_ed63b63425ec3ed09470d8715b208293.zip
附件哈希:ed63b63425ec3ed09470d8715b208293
Flag:flag{1m_s0_ang4y_1s}

提示

1. Download
2. hint: tshark

解题思路

解压开是个pcapng流量包,查看http对象发现有猫腻


这里的name感觉像是文件的数据,123之后的看起来像是一个zip包的头,用strings提取出来丢到010,然后修复一下头(404b -> 504b)得到zip包

打开后发现需要密码,返回继续看流量包,发现有个key参数,尝试用该参数的值作为密码,可以解开。

Misc-听说你们喜欢手工爆破

题目信息

附件名称:OS_038c9291c8039792d1aad140f6664671.iso
附件哈希:038c9291c8039792d1aad140f6664671
Flag:flag{5EFCF5F507AA5FAD77}

提示

1. flag{}内英文字母为大写形式
2. Download

解题思路

附件是个iso镜像,打开发现很多以哈希命名的txt,txt内容打开是base64,解码后表示flag不在此处


在iso文件的底部还有一个rar压缩包,打开发现要密码,于是把这些txt文件名称提取出来作为密码进行爆破,得到rar的密码为0328fc8b43cb2ddf89ba69fa5e6dbc05

解压之后得到一个加密的word文档,尝试清除密码后打开得到下步提示,文档中的提示为电影海边的曼彻斯特剧情梗概,获得提示曼彻斯特编码,尝试用曼彻斯特对门禁代码123654AAA678876303555111AAA77611A321解密。

Misc-这是道web题?

题目信息

附件名称:yunCMS_256035f22b73fdb1c90fd7503c4005ed.zip
附件哈希:256035f22b73fdb1c90fd7503c4005ed
Flag:flag{S022y4orr5}

提示

1. Download

解题思路

一开始以为是代码审计,然后看着看着发现里面有pcapng流量包,然后联想到这题的分类,感觉不对,于是重心放在pcapng上,搜索了一下发现了7个流量包,逐个进行查看
其他的流量包内容都比较相似,唯独在yunCMS\yuncms\modules\az\fields\text\78466550-3fc1-11e8-9828-32001505e920.pcapng这个包中有一个上传操作,上传了一个jpeg,把该jpeg扒出来


然后丢binwalk,发现追加隐写了一个gif,用010分离出来拿到这个gif,然后真的想打人。。。为所欲为表情包,给跪了。。。出题的太皮了。。。

发现gif表情包里有unicode,解码后得到flag
摘录对话如下,表情包请自行脑补:


题外话,讲真,这么出题不怕被打么?不怕被寄菜刀么?不怕悬赏寻找出题人么???

Web-simple upload

题目信息

Flag:flag{064b024d-e3ce-40b1-89c4-f7b5b7463040}

提示

1. 这次在你面前的网站的功能非常简单,接受挑战吧!

解题思路

题目是基于docker的,下发题目之后有个登陆页面,登录过程抓包,发现有个admin的cookie,然后扫描目录发现有个upload.html,上传过程抓包,发现检查了cookie,以及对MimeType做了检测,改为image/png即可绕过


一开始以为是php的,上了php一句话发现不行,然后尝试了asp,aspx,jsp,发现jsp可以执行,重新上传jsp即可拿到shell。

在当前目录下有flag.txt,直接cat即可

Web-biubiubiu

题目信息

Flag:flag{dbc98dd7-90fb-44f4-8dbe-35a72f07ec9d}

提示

1. 这次在你面前的网站看起来很复杂,接受挑战吧!

解题思路

打开发现index有个page参数,猜测有文件包含,尝试../../../etc/passwd果然是有包含的


然后尝试利用php://input执行一句话失败。尝试用php://filter/read=convert.base64-encode/resource=./index.php读取源码也失败了。然后思路在这里小卡了一下,随手查了一下操作系统为Debian 9,Web中间件是Nginx,标准LNMP环境,于是思路又重新理清楚,每次访问nginx会记录log,向log中注入一句话然后包含即可shell,log文件的地址可以在nginx配置中看到,nginx配置默认在/etc/nginx/nginx.conf

log文件在/var/log/nginx/access.log,然后直接注入php一句话代码,结果发现浏览器做了urlencode,用burp重新发包即可

拿到shell之后在/var/www/html/中找到数据库连接

然后连上数据库后找到flag

比赛结束后才知道这是非预期解法,此处也给出本题的预期解法。

[题目]记一次利用gopher的内网mysql盲注 By Pr0ph3t

Web-shopping log/h1>

题目信息

Flag:flag{hong_mao_ctf_hajimaruyo}

提示

1. http://123.59.141.153/ 或者 http://120.132.95.234/
2. hint: 不需要注入
3. hint2:订单号从0000开始试可能不是一个明智的选择
4. (本题的解题范围在题目所在服务器内,请别在其他站点做测试。)

解题思路

查看源代码发现有个提示,将本机hosts直接修改到www.tmvb.com,再次访问发现需要设置Referer


修改了Referer之后再次访问发现仅允许jp的访问

于是修改http头的Accept-Languageja即可正常访问。

根据提示,猜测这里应倒是要对订单号爆破,一共10000种可能,难点在于md5前6位,花了点时间生成了100W个md5,然后直接查表,直接丢脚本吧

我从正序开10进程全部跑了一遍,到9588才出来,真的想吐血,到后面才发现有个hint说从0000开始爆破不是好事

Web-guess id

题目信息

Flag:flag{}

提示

1. http://123.59.134.192/ 或 http://120.132.94.238/
2. hint: 身份证号码是有一定规律的
3. hint2: AES256是很棒的加密算法, ECB模式很容易理解

解题思路

未解出

Reverse-icm

题目信息

Flag:flag{f53fc1db-b7d3-4643-9b48-725f13129d07}

提示

Download

解题思路

直接静态分析,主流程伪代码如下:

通过加密函数的分组、及具体算法里的swap,mul,add等操作,看出是idea算法。
直接dump伪随机数生成的固定key(hex):18fe9c970a7296f5c2fdeeae147592aa
通过简单异或得到目标加密串。

直接用工具解密得到flag(去除尾部补位):flag{f53fc1db-b7d3-4643-9b48-725f13129d07}

Reverse-wcm

题目信息

Flag:flag{e4435341-401a-4bc4-96c1-eadf1951d904}

提示

Download

解题思路

做了icm,ccm,再做到这题也没什么了。大概流程相同。输入为42bytes。然后进行分组加密,最后进行异或并与常量串校验。
至于加密算法,很容易就能看出,国密4,因为算法没有进行过任何更改,所以SBOX,FK等都没有变,直接能对应上加密算法。异或得到加密串:

密钥为伪随机数生成的固定密钥,dump:DA98F1DA312AB753A5703A0BFD290DD6
直接工具解密得到:flag{e4435341-401a-4bc4-96c1-eadf1951d904}

Reverse-ccm

题目信息

Flag:flag{54f946f5-f95a-4a0a-ba31-7b171a7eca82}

提示

Download

解题思路

还是直接静态分析,有壳,不过壳比较简单,简单跟下,对照静态分析,发现OEP跳转位置。

去除动态基地直接在40640E下断,f8,dump,利用偏移2000处API地址修复IAT,脱壳完成。主要伪代码如下:

更多代码就不上了。算法比较简单,除了CRC32 hash,也没有通用加密算法。先是格式检查,前5字节为:

42bytes输入字串index 为 13 18 23 28 处的字符是_
然后生成三张表,其中一张是通过伪随机数生成。对输入hex并进行简单置换。得到84 Bytes的字串,最后异或比较79bytes,其余5bytes通过crc32校验,5bytes中其中有1字节是由{的低4位生成,值已确定,众所周知,通过最后4bytes能更改到任何crc32值,所以crc32只能确定唯一的4byte。
虽然以前做gslab把crc32其及4byte逆推都做了查表实现,为了简化代码,crc32部分只能跑一下了。代码如下:

最终flag为:flag{54f946f5-f95a-4a0a-ba31-7b171a7eca82}

Reverse-Explain

题目信息

Flag:flag{Th1s_1s_TiNy_VirtUA1_MacHine!}

提示

Download

解题思路

同样有壳,简单静态看下就能看到OEP的跳转:

还是同样的下断,dump,修复IAT。

此题是简单的VM题。 做题过程中,作了简单的记录,记录不全,将就看吧。

VM代码有部分解析没记录,大概流程能看出来,就是先初始化目标校验字串,然后输入35字节,并将其与自身index异或,最后与目标字串比较校验。然后打印结果。

PWN-game server

题目信息

Flag:flag{}

提示

1. nc 123.59.138.180 20000
2. Download

解题思路

未解出

PWN-Shellcode Manager

题目信息

Flag:flag{}

提示

1. nc 123.59.138.180 20000
2. Download

解题思路

这题我自己没解出来,这里直接贴他人的exp吧

PWN-Starcraft RPG

题目信息

Flag:flag{c489ae3664013838cfc0543e5af5693f}

提示

1. nc 123.59.138.180 13799
2. Download

解题思路

此题是借助堆的格式化漏洞利用题。 在角色建立时,只有2角色是先分配存储name的堆,后分配存储格式化串的堆。而角色1在写格式化串时有个选择,如果不为1或2则不写格式化串。
利用思路就是先创建角色2,name处写上格式化串,删除,再创建角色1,并不写格式化串。这时角色1的格式化串就是角色2时写的name。因为free再分配堆时还有转large bin的过程。所以name的前16字节会被覆盖,格式化串要偏移16字节。
剩下的就是格式化的利用了。不多说,主要是改atoi调用为system调用。因为此函数一直调用,所以需要中转下,最后一步再让其跳转到system。直接看exp代码。

Crypto-3dlight

题目信息

Flag:flag{fafe7bab4ee995a2883b67bec70ed398}

提示

1. nc 123.59.138.211 20000
2. Download

解题思路

这题我自己并未做出来,此处直接贴上他人的exp吧,写的可真鸡儿复杂啊

Crypto-rsa system

题目信息

Flag:flag{116107e92518781a2b64ec2072d3f73e}

提示

1. nc 123.59.138.211 23333
2. Download

解题思路

直接贴exp吧,反正我也看不懂2333

Crypto-advanced ecc

题目信息

Flag:flag{}

提示

1. nc 123.59.138.211 34545
2. Download

解题思路

未解出

赛后感悟

相比上次强网杯,平台支撑好了很多。然而题目略坑。
Misc感觉纯粹是为了出题而出题。放一份源代码不知道误导了多少人。至少提示中应该说明与代码审计无关,然而提示里什么也没说。
Web根本没有什么实战意义,upload无过滤上传,biubiubiu题目环境部署问题,导致出现非预期解,进而导致难度大幅度降低,shop log这题想吐槽到死的md5前6位的验证码,比谁机器好的游戏么?这在实战当中基本都是不可能存在的东西。
Crypto,Reverse,PWN不怎么会,不过听做题的小伙伴说这些题目还好。
题目比例上,Misc 4题,Web 4题,Crypto 3题,PWN 3题,Reverse 3题,比上次强网杯PWN爸爸吊打全场好多了。
总体来说赛题水平一般,应该是截至目前为止(2018-05-01)公开比赛里比较简单的那类了,期待明年的红帽杯能有更好更优秀的题目出现

其他说明

如需转载烦请注明出处
来自于LinE's Blog
From: http://blog.l1n3.net
谢谢~~

分类: WriteUp 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.