[投稿]CUIT 2014 Writeup

编程
Code100
分数:100
描述:见连接
Link:题目链接
攻略
首先,对程序使用IDA进行静态分析,粗略分析可以看到有以下几个重要函数:main、frame_dummy、getkey、welcome,注意这里有个getkey函数。
下面对main函数运用F5大法看一看,具体如下:

前面调用welcome打印欢迎信息,然后是socket通信,再然后有一个循环,循环结束后调用getkey函数输出。
看到这,是不是有想法?运行程序后直接调用getkey不就行了?还是先在Linx下运行看看。在Linux下运行之后,显示如下欢迎信息:

如果按照一步一步正常运行,需要运行nc监听9877端口,大概是下面这样子:

输出如下信息:

不要怀疑,输入试试,这个就是key,顺利拿到全场第一血。

渗透测试

XXOO李小胖

这几道题目的入口都是http://web1.myclover.org/
攻略
简单测试之后可以发现,下面的地址存在 SQL Injection。

初步用Sqlmap跑一下,没跑出结果,那就手工注入一下试试。

手工注入到此结束,没什么有用信息。
可以尝试读取文件

如果直接访问下面的url,可以爆出物理路径

下面就尝试下写入shell
先写一个phpinfo看看

可以顺利执行,那就再写个一句话看看

菜刀连接一下,嗯,可以连接。
这里再给出一个高端大气上档次的shell写入

为了应对各种删除shell,可以搞一个死循环写入shell,下面的脚本我没测试过,应该可行。

搞定shell,可以查看一下index.php里面的数据库连接信息,内容如下

用菜刀连接一下数据库,把数据库翻一遍,可以找到see_here这张表,内容如下

顺利拿到一个key
此外,在E:\wamp\cclover\目录下有一个haha_key.txt文件,web下读取到的信息为

这里稍作说明:在拿到shell使用菜刀连接后,就可以看到haha_key.txt文件,当时无法读取或写入,但是可以删除。猜想如下:

上面两种猜想都指明一个方向:对服务器提权,但是对服务器提取可能涉及攻击比赛平台,为规避风险,在群里提问是否需要提权后无人回答,只能
先按照不提权进行处理。但是不提权确实无法读取haha_key.txt,只能等待服务器回滚。为了加速回滚,并测试服务器文件权限,可以直接删
除index.php文件,删除所有webshell,等待回滚。
这里多提几句,对于删除他人webshell的行为,我个人观点是实在没必要删除另外的shell,能把shell写入的多加思考都可以把shell稳定(参加过ACTF
的应该深有体会),删除shell不如删除index.php这个shell写入入口干脆利落。删除index.php后发现web目前可以遍历,私藏webshell暴露无疑(就是
没有密码,可以试试webshell爆破)。当然,为了阻止其他选手,直接删除haha_key.txt也是一种办法,至少比设置一个奇葩的权限有意思。
提取部分可能涉及对比赛平台的破坏,未深入测试,还有一个key未拿到,web1的测试到此结束。

不要在意细节

分数:300
描述:秒速5厘米? 不要在意细节,重点不在那里
Link:题目链接
http://web2.myclover.org/audit/
攻略
访问index.php查看源码,可以看到如下信息

尝试访问如下地址,可以发现jpg文件被读取(这个叫啥执行还是读取漏洞?忘了)

对bXM1bG0uanBn经base64解码可知为ms5lm.jpg,那我们试一下index.php的base64编码后读取

再访问一下myclass.php的base64编码后读取

顺便测试一下readimg.php的base64编码后读取

提示key在key.php文件,那么访问一下试试 http://web2.myclover.org/audit/key.php

这个是key吗?当然不是啦,给了这么多源代码,再直接给key怎么可能呢?
研究下代码发现,unserialize函数比较可疑,祭出Google神器,查一查有没有什么漏洞,后面找到一篇文章(两个地址得一起看,截图不太相同)
PHP源码中unserialize函数引发的漏洞分析
PHP源码中unserialize函数引发的漏洞分析
本地搭建php环境,来个辅助test.php看看结果

本地输出结果

然后提交一下看看结果

提交后结果,顺利拿到key

逆向工程
最简单的题目
分数:100
描述:key是syclover的注册码
Link:题目链接
http://pan.baidu.com/s/1o6JPqoa
攻略
不多说,直接看代码

最简单的题目.net解法

一些没完成但是有思路的题目
最简单的加解密
分数:300
描述:常用的加解密。
描述:
提示1:DES 提示2:旋转
提示1:DES 提示2:凯撒
Link:题目链接
http://pan.baidu.com/s/1o6qJcue

攻略
附件为二维码图片,使用在线的二维码解密后结果为

 

下载图片后可以看到两段附加数据,分别对待
图片附加数据一

转换为十六进制

Hex解密

Base64解密

图片附加数据二

转换为十六进制

Hex解密

比较明显像是DES加密,为啥呢(Sycl0v3r是8位啊),对于凯撒的tip没找到利用方法。
思路有两种:
1. key为凯撒加密,对key凯撒解密后使用
2. 密文为凯撒加密,对密文凯撒解密后使用Sycl0v3r作为key解密
当然,也可能为key和密文都是凯撒的,这tm也太变态了,战略性忽略。

EditCookie
分数:200
描述:恩,你们想吃饼干码? T_T 真不是注入
Link:题目链接
http://web2.myclover.org/coo/guestbook.php
攻略
web查看,初步判定是XSS问题或SQL注入,官方提示中饼干指向XSS
查看服务器返回的数据包

尝试访问下面的地址

鉴于对XSS及正则过滤绕过不熟悉,放弃。

我要当管理员!
分数:200
描述:先做做看,再给提示!
Link:题目链接
http://web2.myclover.org/wts/
攻略
查看发送的数据包

查看服务器响应数据包

注意到Cookie值为Mg==,经Base64解码为2,试一试level=1的情况
修改后的发送数据包

接收到的数据包

尝试访问如下地址

可以看到页面中含有如下地址

同时还有输入框,推测为弱口令万能密码之类的,爆破未成功。
尝试访问

服务器响应报文

our_team_name取md5结果如下

syclover取md5结果如下

对服务器POST多次数据未成功,暂时放弃。

本文作者:n01d34

征稿启事:91RI 一直相信“你不与人分享,谁与你分享”, 分享的确是件非常有意义的事情。为了让优秀的同学有 地方分享自己的独到见解,也为了让更多同学从分享中受益,同时我们也希望给那些愿意分享的小伙伴们一点点心意作为感谢,所以我们隆重了推出“有奖征文”活 动!本次活动的详情可以围观《征稿启事