组队参加上交大安恒杯CTF比赛心得和整理
前言
本人工作于厦门大学信息与网络中心,以下参赛为中心团队共同完成。本次比赛偏向高校网络安全运维,非高难度安全竞技比赛,本文内容有些为赛后脑补的,请勿全信。本文主要是方便一些想要入门的同学,当然,老司机也可以来帮忙审计,欢迎批评指正。
10月31号单位组织参加了上交大组织的CTF比赛,这次比赛实际上为2016“安恒杯”全国高校网络信息安全管理运维挑战赛的第二阶段,第一阶段为3个小时的300道理论题(单选题),第二阶段即为这次的在线CTF,8个小时,17道题。
这个比赛在群里预热蛮久了,但是本来我一直是不想参与的,因为在原先的印象里,CTF以逆向题为主,脑洞题很多,狩猎要广,跟实际工作脱节,看看是可以,但是要参与则投入太大。直到9月底姜开达放出了理论题的样题,初步做下来觉得蛮好玩的,所以想让整个队伍来被检验一下,于是报名参加了第一阶段理论题考试,没想到成绩还挺可以,得了个第三名。这里要说的是题目确实非常贴合高校运维方面的安全理论知识。赛后主办方非常贴心的发来答案,复盘完又学了不少新知识,于是考虑要参与第二阶段了。
既然决定了要参赛,得准备一下了,理论考试可以凭借平时的工作积累轻松参与或者瞎蒙,但是实战就不行了,于是去图书馆抱了十几本书,浏览器打开几十个页面,开始学习,不得不说这过程中学到了不少东西,收获了不少提高生产力的工具。
这个比赛理论上是由领导带队,老师不多于3人,加上学生不多于5人,但是我托人去信息工程学院找玩CTF的学生,没有找到,因为CTF实际上有很多套路,需要大量的练习,解题中需要大量的阅读和尝试,学生时间会比较多一点,没找到学生只有我们几个直接上了,我能说其实我们第一阶段第二阶段中间换人有人感冒没参与第二阶段有学习有看热闹有后勤人数超过老师人数的限制了么?
很快第二阶段CTF例题出来了,一直没空去解,直到第二天主办方要培训了,赶紧上去看了下,花了一天时间8题都解开了,感觉难度还可以。然而章思宇培训的时候说最终题目会比这个难,于是想不要太难看,最好能解一半以上就差不多了。
正式比赛开始了,第一次玩,确实有点不适应,首先,第一题签到题出来大家就傻了,这什么鬼条形码怎么这么长,google搜索在线条形码找不到几个好的,这题考点是啥?手机扫描太长,手机像素差光线暗,完全扫不出来,连引新系统用的扫描枪都搬出来扫(有点感觉怎么上物理攻击了?),换了2个(有个是坏的),还考虑打印出来扫(没试),都没成功,最后还是许卓斌高大上256G iPhone7 Plus安装专用软件扫好了,但是已经花了不少无谓的时间了。随着题目慢慢放多,拿手的题目的解开,就开始渐入佳境了。当然,我们答题是有技巧的,因为Scoreboard是公开的,我们又定义自己比较弱,所以如果我们看到一个题目答出来很多人了,那就可以投入精力,没人答出的直接不浪费时间了,也就导致了最终2个大题没有解出来。
题量大,时间紧,人员不够,像写PoC,我感觉确实有点像被人用枪指着头编程。(剑鱼行动,约翰·特拉沃尔塔 面试 休·杰克曼 时)
因为基本上思路你清晰了,只要程序能写出来就解决了,但是时间又很赶,只看结果,过程正确又不会加分,写程序准备不充分对语言不熟悉很多东西都得Google示例代码,然后还必须调试。
最终结果是17道题解了14题,排名第10,至少上了Trend板。赛后和第一阶段折合最后得了第七名,哈哈。
比赛结束后立刻整理大家的writeup,以Markdown格式邮件内容发给了主办方,没想到最后主办方公布出来的writeup大家都是很漂亮的docx,pdf,甚至还有微信公众号工具排版,而我们的writeup以Markdown格式放在docx里,非等宽字体,还分散对齐,非常得不专业,又不能去更改。于是,正好赛后要整理,在关闭所有虚拟机,关闭几十个CTF相关浏览器页面,关闭十几个资源管理器窗口,整理工具,删除中间紧急时到处乱放的临时文档之前,所有东西归位之前,整理一篇博客出来。
打CTF确实非常耗费时间,不管是前期准备刷题还是正式比赛答题,对熬夜体力也是一个考验。
最后还是非常感谢主办方,这里是列表,从开始视频讲座,安全书籍抽奖,例题发放,组织考试,非常到位。出题其实比解题难啊(出题者应该也非常希望看到解题者的writeup)。而实际上主办方的目的也已经达到了,赛后已经有学生团队跟我们接上头了。
文章目录
- 前言
- 文章目录
- 2016“安恒杯”全国高校网络信息安全管理运维挑战赛介绍
- 科普CTF http://baike.baidu.com/subview/2735962/16211061.htm
- 场地准备
- 书本准备
- 虚拟机准备
- 文章阅读
- 工具准备
- 厦门大学完整更详细 writeup 非图文无题头版
2016“安恒杯”全国高校网络信息安全管理运维挑战赛介绍
为了推动全国高校的信息化安全能力建设,拓展高校网络信息安全团队建设渠道,吸引在校学生加入网络信息安全工作,在实战中培养高水平的网络信息安全运维队伍,促进高校安全团队的形成,提升我国高等教育系统的信息化安全保障能力。中国高等教育学会教育信息化分会定于2016年5月~11月举办2016“安恒杯”全国高校网络信息安全管理运维挑战赛,希望各校积极参与。
本次大赛全部线上进行,分为安全理论考察和动手实践锻炼两个阶段,各占总成绩的50%。本次大赛定位于普及和培养中高级安全运维人才,非高难度安全竞技比赛。1)安全理论部分:标准化测试(选择题),3 小时。团队所有成员均需参加,最后取平均成绩(折合为百分制)。考察点包含但不限于以下内容:信息安全法律法规、信息安全管理体系、风险管理、安全工程、应急响应、灾难备份与恢复、物理安全、信息安全标准、信息安全模型、密码技术、网络与通信安全基础、网络安全应用、操作系统安全、Web 与数据库安全管理、恶意代码防护、安全编程、安全攻防等。2)动手实践部分:CTF(Capture The Flag)竞赛模式,8 小时。以团队为单位参加,取最后总得分(折合为百分制)。考察点包含但不限于以下内容:操作系统和网站应用服务器安全、网站多种语言源代码阅读分析(特别是 PHP 和JAVA)、数据库管理和 SQL 语句、Web 漏洞挖掘和利用(SQL 注入和 XSS 等)、信息搜集能力、编程能力考察、移动应用安全、计算机取证技术和文件恢复、网络基础以及对网络流量的分析能力。每个团队理论与实践成绩累加,满分为 200 分
前12名 writeup 下载。
科普CTF http://baike.baidu.com/subview/2735962/16211061.htm
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。
CTF竞赛模式具体分为以下三类: 一、解题模式(Jeopardy) 在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。 二、攻防模式(Attack-Defense) 在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。[1]
场地准备
学习东北大学,主场在会议室,方便大家讨论,准备了笔记本(纸质非纸质都要),饮料,零食,快餐。解题时可以回自己工位,毕竟双显示器,Cherry键盘,Logitech鼠标,熟悉的环境,转头可以看到SONY DPF-D720动态播放的相片,会加分不少。
书本准备
这是在图书馆借的书,哇,你好变态,都看完了?咳咳,这个问题嘛。
虚拟机准备
这是11月1号刚报的:中国最大的Webshell后门箱子调查,所有公开大马全军覆没 http://www.freebuf.com/news/topnews/118424.html 。常在河边走哪有不湿鞋。由于比赛需要用到一些漏洞扫描工具,一些暂时没有授权的工具,一些被杀毒软件报告的木马shell,一些被人放了后门的后门,做题时需要运行一些奇怪的主办方flag.exe,所以工作用机不能拿来玩,于是安装了多台虚拟机。
- Windows7,安装Windows常见工具,Java GUI工具。VS.NET开发环境。
- Ubuntu16.04 LTS服务器版,安装Linux常见工具,准备LAMP环境。
- SecurityOnion、Kali。主要偏向渗透,最终发现这次并没啥用。
- Google搜索,百度搜索,这2个都要的。Google搜索主要是墙。
比赛前所有虚拟机重启,做好快照,打开必备软件,配置好代理,手机静音,跟老婆打好招呼防止查岗,上好厕所。开始了。
文章阅读
首先框架性系统学习,再每个点深入学习。Google、百度CTF关键字前2页全部打开,中间做好笔记。互联网资料实在是太多了,你打开的任何一个页面又会再打开十几个页面,中间会蹦出你不懂的关键字,一搜索又是10个页面,所以团队成员应当有所侧重(废话),队员应当有“Consider it done”的牛气。比如我们的Wireshark题目,由网络部陈远全部搞定,完全省心。再一个统揽全局,各个方面都懂一点,找方向,分配任务,分析题目难易和分值,决定资源投放在哪。
常见链接
工具类,科普类,各种writeup
- github.com/apsdehal/awesome-ctf,每个都必须细看,在本地安装好。
- g33kinfo.com/info/archives/6261
- github.com/zardus/ctf-tools
- http://www.freebuf.com/sectool/94235.html ,工具中文解析
- http://err0r-451.ru/ctf-tools/
- 针对CTF,大家都是怎么训练的? http://www.zhihu.com/question/30505597
- http://tieba.baidu.com/p/3933947157
- https://github.com/ctfs/
- http://ctf.idf.cn/,训练营
乌云离线资料
如果有时间,应当在本地搭建起乌云离线公开资料,所有页面全部读过一遍。
SQL注入
如果能确定为SQL注入,则就不应当丢分,虽然我感觉出SQL注入的题目意义不大,因为太容易避免,一个参数化查询就攻击免疫,但是SQL注入又一直盘踞OWASP Top 10之首。由于SQL注入有单引号、双引号、过滤哪些关键字,二次注入,这些再排列组合导致有很多很奇怪的题目。SQL注入必须说要把 http://redtiger.labs.overthewire.org/和SQLI-LABS例题全部手工做过一遍。共7x道题,做完就是高手了。
sqli-labs writeup http://dummy2dummies.blogspot.com/search/label/sqli-labs
SQLI-LAB 的 实战记录(Less 11 - Less 20) http://blog.csdn.net/qq_21500173/article/details/51920968
有个队伍的writeup写到为了二分法暴力破解采用整个团队人肉多进程测试,所以SQL注入的Python脚本应当在前期就准备好,最好是自己写的。因为有些漏洞sqlmap扫不出来,或者需要登录,或者需要提交些奇怪的CSRF啥的。即使你可以用HackBar或者Burp Suite的Repeater直接注入,也建议最后把入侵payload写入Python脚本。
PHP代码审计
PHP作为一种弱类型语言,问题也是非常多,可以说我原先都不知道这么多问题,连==和===都不是那么了解,所以Google “php审计基础一二三四五”,“PHP漏洞全解”、“PHP文件包含漏洞”等等全部复习过一次。准备好各个不同版本LAMP环境,谁知道主办方会不会以某个特定的版本出些特定的漏洞呢?
XSS、CSRF、Clickjacking
这些由于在线考试不好出题,所以这次都没出现,但是也是属于需要了解的内容。
2013 XSS Challenges Stage 解题报告 http://blog.csdn.net/emaste_r/article/details/16988167
文件上传
简单逆向
这里说的逆向是能用工具直接解开后看到源代码的逆向,没有加壳没有代码混淆。如果不是我一定怂了。有了源代码,一切在手,想怎么玩就怎么玩,打印全部变量,篡改绕过条件判断,常量定义挪位置,直接构造中间变量,分析出变量用途后refactor更改变量名,可以说一切都没有难度。
图片隐写
http://www.2cto.com/Article/201502/377052.html
阅读writeup
姜开达说了,临阵磨枪,不快也光。最后时间来不及了不解题,直接看writeup,看安全漏洞新闻。当然效果肯定没有自己做过一遍再writeup复盘好。
工具准备
说明
工具不放链接,不科普,点到为止,不一定全面,如果不懂请Google。有些赛棍的工具箱按目录分类,非常多,我这边我放出我这次自己学习的和看完其他人writeup的。
十五个Web狗的CTF出题套路 http://weibo.com/ttarticle/p/show?id=2309403980950244591011
脚本准备
必须要有自己的Python脚本,PHP脚本,建立自己的cheat sheet。var_dump等文件预先写好,.htaccess攻击playload准备好,XXE playload准备好,一句话木马各个语言准备好,不能等到了现场才去下载。
Python requests import好,pip install常见组件,apt-get全部到最新,nodejs,gem,bower包管理器全部配置好。
浏览器收藏
各种在线解码啥的工具收藏好。
编码类
熟悉base64,知道原理,知道各个编码的长度,常见格式。16进制在各个语言(C、C++、Shell、Python、Java)的表示方法,URL解码,熟悉ASCII码,常见ASCII码必须背熟,看到特殊的十进制或者十六进制要有敏感度,不能到了解题时再去查表。
ASCII码对照表(十进制和十六进制) http://www.cnblogs.com/cane004/archive/2010/08/19/ASCII.html
HTML 字符实体 http://www.w3school.com.cn/html/html_entities.asp
HTML ISO-8859-1 参考手册 http://www.w3school.com.cn/tags/html_ref_entities.html
HTML URL 编码 http://www.w3school.com.cn/tags/html_ref_urlencode.html
Burp Suite Pro
Burp Suite使用详解 http://www.nxadmin.com/tools/689.html 、Burp Suite使用介绍 http://blog.csdn.net/luckchoudog/article/details/50419953 ,这个翻译有点问题,建议看完后再去搜索英文原版。基本上看完以上理论知识准备就足够了,接下来做几个实践就差不多了。
Fiddle
跟Burp Suite同类型工具。免费。
AWVS
网站漏洞扫描工具,不管3712,一拿到Web题,“大家先等等!!”,跟你吃饭前拍照发朋友圈一样,先扫了再说,建立自己的情报。
nmap
主机扫描工具,也可扫出部分Web内容,免费。命令行模式,参数多且复杂,建议每个参数都试下,建立自己的常用参数模板。配合AWVS,情报收集工作工具不嫌多,反正点击一下就告诉你结果,又不浪费什么脑力。
dirsearch
扫描常见目录和文件。
BBScan
BBScan is a tiny Batch weB vulnerability Scanner.
- It has a quite small but efficient set of rules
- It can auto add Target/mask network hosts to scanner
- Quite few false positives
w3af
本次没准备。感觉应该用不上。
sqlmap
必备,先扫一扫。
SQL注入之SQLmap入门 http://www.freebuf.com/articles/web/29942.html
二进制文件
file、binwalk、strings工具必备。
文件头字节 http://zhidao.baidu.com/link?url=nEINPWI0sj38EgXXVKW7bCdRai3r50QnF7BCMct-pWTZmDF4m9PqhU7BVS-v3sTjX0apGcSKmzg3ZQJN4iwkeK 熟悉,常见类型应当如同电报员对电报编码一样熟悉。
PEiD v0.95 看文件类型,加壳类型。
WinHex编辑二进制。
Sublime Text2也可以直接编辑二进制文件。
Notepad++直接打开二进制浏览字符串,比strings好,适合大屏幕,不需要less,grep。
VisualCodeGrepper
VCG is an automated code security review tool that handles C/C++, Java, C#, VB and PL/SQL. It has a few features that should hopefully make it useful to anyone conducting code security reviews, particularly where time is at a premium:
UPX
UPX is a free, portable, extendable, high-performance executable packer for several executable formats.
Seay源代码审计系统2.1
Struts2漏洞利用工具2016版
dig
DNS工具。也不要bs在Windows下用nslookup的人,工具不嫌多。
nc
netcat,socat 玩好。渗透类使用较多。
在线解二维码
不知道实际做题为什么Google没有找到这些工具,是从其他人的writeup里得到的。https://online-barcode-reader.inliteresearch.com/ 、http://www.makepic.net/Tool/DeQRBarCode.html
Wireshark
其实我开始对网络是懵懂的,10级懵懂,我工作在4层以上,在我们的世界里,服务器有Log,编程有调试器,各种console.log,可以从现象看本质,可以定量查看问题,然而以前网络对我是透明的,tcpdump也只是用来看看实时流量,Wireshark有装但是从没有操作过,这次借了5本书说实话我只看了一本(同事都看完了),但是经验值已经升到90分。我能说我IP掩码什么的都不会算,水晶头一辈子没做过么?
在读书过程中也做了一些笔记,分享一个最弱智的:
帧,帧里面有包,帧可能在IP层被分片,大小MTU。TCP在发送时一段大数据可能分成几个包,包大小受MSS控制,现在的实现MSS就是MTU-x。Wireshark那个列表会显示分片和分段,也会把分段整合起来以更高层协议显示。
可以说Wireshark非常得强大,可以让你在海量的数据包里过滤定位问题,也有一些简单的统计信息让你对网络拥塞等作出基本的判断,是每一个网络管理员、系统管理员、编程人员的必备工具,有了它,网络在你面前是裸体的。
tcprewrite
配合Wireshark。
科来网络分析系统(技术交流免费版)
科来网络分析系统是一款专业的网络检测分析工具,可实时监测网络传输数据,全面透视整个网络的动态信息。除了能实时检测每台电脑的上网情况,邮件收发情况,网络登录情况,网络流量外,还具有强大的数据包解码分析功能,可诊断网络错误,检测安全隐患。
jsdetox js混淆解开
JS代码格式化,混淆解开,JSON代码格式化工具要准备。
IDA Pro
逆向必备。
Java逆向
jadx、JavaDe,jdec-20,多下几个,不嫌多。
.Net逆向
ILSpy
dnSpy
.NET Reflector原先一直用,从免费用到不用。
GitHack、Seay-Svn源代码泄露漏洞利用工具
自动化抓取.git目录泄露工具,.SVN泄露工具,如果代码不是在master分支,可参考:
A simple tool to recover .git folder on remote server.
PHP代码等
Show My Code,小猪php解密、云路PHP在线解密,网页请加入收藏夹。
Xdebug - Debugger and Profiler Tool for PHP
beef
BeEF is short for The Browser Exploitation Framework. It is a penetration testing tool that focuses on the web browser.
Metasploit
The Metasploit Project host the world’s largest public database of quality-assured exploits. Have a look at our exploit database – it’s right here on the site.
中国菜刀
据说很多都有后门,小心。后门的人还做了SEO。
Cknife
C刀
图片隐写题
Stegsolve.jar 必须的。stegdetect不知道为啥没有编译成功,懒得修改。
PDF隐写
wbStego4open,这个原先没准备,解题过程中下了,但是发现题目完全不需要用到这个。
XSSer
XSSer aka. Cross Site “Scripter” is an automatic -framework- to detect, exploit and report XSS vulnerabilities in web-based applications. It contains several options to try to bypass certain filters, and various special techniques of code injection.
Firefox插件类
Firebug、HackBar、Modify Header Value(HTTP Headers)、Tamper Data、NoScript、Selenium IDE、FoxyProxy。
Chrome插件类
EditThisCookie、JSONView、Postman、Postman Interceptor、Proxy SwitchyOmega。
厦门大学完整更详细 writeup 非图文无题头版
Chkflag
下载了是一个.Net程序,用ILSpy.exe解开,保存成cproj项目,在VS.NET打开,调试,构造
existingList.Add("n0T");
existingList.Add("T00");
existingList.Add("D1ff1c11t");
existingList.Add("t0");
existingList.Add("R3c0V3r");
existingList.Add("7h3");
existingList.Add("R1gh7");
existingList.Add("F1a9");
ReadOnlyCollection<string> commandLineArgs = new ReadOnlyCollection<string>(existingList);
得到flag。构造过程是硬编码,傻傻一个字符一个字符替换,找了个人在旁边 peer review。
RecvFlag
下载Wireshark打开,他是邮件接收的抓包内容,提取.7z的附件,邮件内容包括密码,解压加密的.7z得到pdf文档,中间查找各种pdf隐写工具,最后strings .pdf | grep EIS 得到flag。复盘发现其实直接Adobe Reader看属性可以看到,跟示例题图片打开看EXIF信息一样,想太多了。 |
Welcome Again
下载png文件,使用Stegsolve.jar打开,界面最下面左右切换,可以看到flag隐藏在二维码内。
Welcome
上面说了,艰辛啊,最后是打开png,使用QRCode扫描,得到。
EIS Cloud
没做出来,以为是xml XXE漏洞,试了半天,Chrome浏览器欺骗了我,主要还是自己没动手过XXE,后面看其他人writeup才知道是由于.php没有改名暴露问题,上载.htaccess添加执行权限。
PutFlag
下载Wireshark打开,是NFS流,找到一个flag.txt.gz,解开得到flag。
Symmentric
jar下载,JavaDe打开,直接保存源代码,修改编译运行。 代码是输入一串,使用key加密,判断是否等于
byte[] expect = { 101, -99, 106, -7, -16, 75, 120, 77, 125, Byte.MAX_VALUE, -36, 34, -84, 110, 97, -28, 40, -122, -97, 125, 62, -16, 26, 58, 81, 99, -90, 47, 107 };
,由于是题目指明了Symmentric对称加密,所以直接expect直接拿去做输入得到flag。这题也是java不熟悉,javac都不知道怎么跑,java运行又遇到classpath新手问题。
Login
没有做出来。主办方后来提示为盲注,这题也是很坑,最开始看到_nonce,以为只是为了防止服务器缓存,但是POST为什么会缓存,再说缓存一个random就可以为什么那么复杂,虽然我知道套路,主办方不会随便放一些没有意义的代码,也会随便放一些没有意义的代码,打我啊。 复盘后知道开JS调试,Burp Suite抓包查看提交数据,都有可能看出来。
Speed Type
这题没有难度,解题流程顺理成章,一开始看以为要去动用互联网解验证码API,打开源代码才发现不需要,这题考察编程能力,使用python3 urllib下载,获取Cookie,图片文本,data:image,base64解码后,使用ElementTree提取所有TXT节点,并按TXT节点的x坐标排序,生成字符串,并用获取的Cookie和生成的字符串提交得到flag。余钰炜写Python,没错的。
Exam Result
注入漏洞,多尝试,在名字输入“”,学校输入“厦门大学\”,地区输入” union select 1,flag,3,4,5 from flag#”,得到flag。吴添富专门负责SQL注入,很放心。
Forbidden
使用AWVS扫描,得到WEB-INF目录泄露,源代码泄露。打开 http://202.120.7.206:7734/WEB-INF/web.xml ,看到 http://202.120.7.206:7734/WEB-INF/classes/applicationContext.xml ,打开 http://202.120.7.206:7734/WEB-INF/classes/hibernate.cfg.xml ,从密码配置拿到flag。当然中间解题时没这么简单,也有在找源代码里面的内容,最后是每个配置都去看才发现的。
Dead Link
下载torrent,临时Google 学习torrent格式,得到SHA1 hash为897256B6709E1A4DA9DABA92B6BDE39CCFCCD8C1 ,google找到HASH相同的文件,2段cat拼接在一起,算出MD5,得到flag。中间还考虑是不是torrent格式错误,修改了几次格式,都无法下载。也试过直接提交一段的MD5,失败。
SendFlag
构造Email为00000@eis.ctf.域名,在DNS服务器增加MX记录,使其可以解析,可以通过验证,得到flag。这题完全没想到,一开始JS绕过很容易,正则表达式也很轻松,但是提交后提示没有MX和A记录,以为没有这么复杂,还需要解题者控制一个域名解析或者DNS服务器,虽然我就是域名管理员,但是完全不想去操作。。。我还是太年轻了。再复盘想到其实随便解析到一个有泛域名解析服务器即可1秒尝试,比如天猫,00000@eis.ctf.xmu.tmall.com。
Attack Me
dig attack-m3.sec.edu-info.edu.cn -t any
得到
attack-m3.sec.edu-info.edu.cn. 3600 IN RP RUlTe0hvV19DYW5fWW91X0QwX1RoMXNfV2l0aDB1VF9YRlJ9. Good-RP.Congrats.
attack-m3.sec.edu-info.edu.cn. 3600 IN TXT "Qm9vbSEgRmxhZyBpcyBub3QgaGVyZSA64oCRRA=="
RUlTe0hvV19DYW5fWW91X0QwX1RoMXNfV2l0aDB1VF9YRlJ9 base64解码得到flag。 虽然这台DNS确实存在axfr配置错误,但是无需这个好像也可以解吧。
Encryphp
下载了为Www.PHPJiaMi.Com加密,Google多个解密工具无果,找到http://www.yunlu99.com/,云路PHP在线解密,免费只能显示一段,联系客服QQ,花了3元完整解开源代码,里面有flag。
Visual Hacking
图片下载后,PS拉伸成正面,补上左下和右下定位点,扫描得到。
Public DNS
没做出来,章思宇(我有一篇DNS的论文引用了章思宇的文章)出的题目么?所以这次有3题DNS相关么?原先我自诩DNS高手,看完所有bind文档,居然没看到edns-client-subnet。偷懒,DNS服务器还没升级到bind9.10,log里面一堆edns提示直接忽略,bind view没用也从来没去配置过,CDN的客户端源地址问题也想过是怎么解决的但是没有去搜索完全不知道edns解决了这个问题。而且坑的是,我准备了2台虚拟机,一台Ubuntu16.04,一台Ubuntu14.04,其他题目都在16.04解,偏偏dig在14.04跑,已经在man dig找奇怪的参数了,可惜14.04带的dig不支持subnet参数,如果那时候阅读的是16.04 man dig,不知道是否可以找出来?
可以关机了。