930----国庆第一天

前记:这该是一个值得怀念的假期,又一次体验悲喜交加的感觉。在最初忘了自己的初衷,然后又在队友的帮助下,逐渐的回复了自己的信心,一步一步从零到一个小菜鸟。现在是时候写下那时自己的思路以及真实思路的差距,好让在其中学习各种奇淫技巧。

(1)第一道题是提示是“help youself,那时呈现在眼前的是

102353672.png

那时海里呈现的思路只有两个,

第一查看网页的源码,在源码里面没有发现什么,那时的的立脚点定在点击劫持,那时进行了一个小尝试,就是去调整方框的大小,看是否会有隐藏的内容。之后,又把观察点定在源码里面描述行宽和列宽的点上,在提取那里的数据再进行(base64)decode。但尝试失败,无果。除了上面方框给出那些字符外,我没有发现其他的内容。

第二:于是仔细看一下数据,觉得他们应该是十六进制的编码,因为再大的字符去到f就停止了,那时采用了十六进制数据转换ASCII,转换后发现一些无法利用的数据。尝试失败。

后记分析:其实那时候自己已经很接近了,理解其为十六进制的编码,却没想到它是个文件以十六进制形式呈现,假如那时候能够熟悉使用Linux下的工具(hexedit),也许能够做到一个分析的流程,这次的思路给了一个很好的提醒。我们在遇到一些经过某进制后的数据时,应该注意其变为二进制时候是否为一个常见的文件类型。之后的流程应该可以利用winhex打开找到base64编码的key,进行base64decode即可。

(2)题目中很明确的提示.

make sure you are vactican

www.blackhat.com

起初我做这道题的时候只想到一个,也是修改httpheader中的refererwww.blackhat.com,不过那时因为没有现成工具可以修改httpheader,只好暂且放弃。然后之后队友看到这道题的时候,提供了一个很好的思路,就是找一个来自梵蒂冈的代理,然后连接上去。那时自己也没多考虑就按照他给的关键词去寻找,结果没有找到来自梵蒂冈的代理,那时特别郁闷,线路在这断了一下。然后自己在后续的题目中找到一些思路,第三届的XDCTF里面有一道题强调了accept-language这个点,我在这思考是否需要修改为梵蒂冈所使用的语言类型,然后就去查询了。发现梵蒂冈使用的是意大利语以及拉丁语,那时我就查询关于accept-language这个知识点。为了使web浏览器国际化,浏览器会使用accept-language+cookie自动选择用户交互语言,因而我就去修改accept-language这个参数为意大利语和拉丁语,可惜我的想法错了。无果

http://g.kehou.com/t1030138305.html

后记分析:那时在利用分析的问题没有进行一个较好的分析,那时只是按照队友给的思路去进行,其实那时只需要搜索因为梵蒂冈Ip,就会出现一个百度知道,然后里面就给出一个(这个也是答案所使用的ip地址)。在结合http数据头里面的一个参数即可修改梵蒂冈Ip为我们的代理的Ip,这样服务器识别我们的请求,就会提示下一步。之后修改X-Forwarded-For为梵蒂冈的Ip地址,之后进行访问。但是问题还没解决,那时返回的是NOT FOUND错误页面(但是其返回的状态码为200)。再仔细思考一个提示,www.blackhat.comheader里面对应的Host对应的是请求服务器的域名,所以我们把request请求的数据中的Host修改为www.blackhat.com。之后返回的respond数据包会返回一个一个base64编码的key

Ps: Host指定请求的服务器的域名和端口号

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。
标准格式如下:
X-Forwarded-For: client1,proxy1, proxy2
从标准格式可以看出,X-Forwarded-For头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡的ip地址,经过几个就会出现几个。下面是参考资料的链接

http返回的状态码

“404”NOT FOUND 没有发现访问页面

“200”:OK

3Click

这个题到时第一天自己做出的题目,感觉还好。哈哈!

1】那时我使用的是firebug,查看网页源代码,发现一个函数里面存在一个关键点。firebug查看网页源代码 发现key.gif。

http://ctf.xdsec.org:2222/basic/click/


104140510.jpg

发现里面有一张图片,key.gif.通过在url添加/img/key.gif将其下载;如

http://ctf.xdsec.org:2222/basic/click/img/key.gif

104142761.jpg

记事本方式打开,如图得出key104510860.jpg

4Hide

105315949.png

那时候我的思路还是从照片入手,从源码一开始分析没有什么.于是把呈现在答题页面的图片下载下来,利用记事本方式打开,发现一个key的字眼:key:304933534543,但是把这个当成key输入,提示错误。接着再尝试把它十六进制解码,得到字符0I3SEC,输入后依然没有提示通过。同时在Key的周围还有一个信心点:game is over,尝试过把它作为我的key输入,可是依然错误。

于是对网页的源码进行一个分析,分析到网页源码里面有个url编码的地方,这应该是一个关键点。将其解码,获得一个绝对路径下的文件105318640.png

8a79214b800248e54090d63d0c_560.rar,可是我打开后只有一个key.txt,,并没有其他的文件,就是这里出错了。之后也没就没想明白

105320734.png

后记分析:关键的失误点是在8a79214b800248e54090d63d0c_560.rar,我已经把文件下载下来,却没有发现其他有用的文件,这个导致没有后续的分析。而在答案中的思路也一样,但是,但是我没想到别人是对rar这个文件直接十六进制分析,利用winhex工具打开rar文件,会在最后面发现这样的字眼

105322279.png

假如对前面我们的关键信息点有印象的话,可以知道,game is not over game is over联系起来,即将key:58694469406E5A进行十六进制的编码即可得到字符:XiDi@_O,之后将前面的ASCII码连起来得0I3SECXiDi@_O

(5)jother

一开始看见这道题,把提供的的文件下载下来,打开发现一大段

105324601.png

这个完全是由“[],“!”,“+”,“()”,“{}”组成的编码后的字符,因为不知道它使用什么编码的,一开始猜是lisp语言,但不确定,于是求教朋友。他提供了一个链接,那时知道这是一个js的绕过代码编码方式,那时尝试去找解码工具,可是那都需要java虚拟机才能运行,于是就放弃了。

后记分析:没想到赛题的标题就给了提示,查询jother关键字眼,就会出现jother编码解码工具,对key.txt的内容进行分析,之后查看key.txt的内容,它提示说到在网页源代码key.txt处增添<script></script>标签,即返回关键的key

6js

这道题真心不会,不过幸好队友把它读出来了。回去还得加强一下js脚本的学习,小白真的伤不起。

105326140.png

得到key:upkerishero

后记分析:关键点是从题目入手定位在js脚本,然后在查看js脚本的时候发现差异点,没有checks这个函数,于是往checkpass这个页面去找它的js调用


7Login

这道题太悲催了,还是怪自己的经验不足。那时通过Poster发送一个POST请求,返回的数据里面有一个PASSWORDDONtTrY,这时候第一个头脑反应就是拿它作为Key,失败了。接着阅读网页源代码,noting is here

后记分析:知道PASSWORD却还不知道登录,笑尿了。哎,下次汲取经验,利用返回的PASSWORDDONtTrY,登录后会返回加密后的密文,进行DES解码即可。


8Rot13:

一开始我尝试比较这两个文件txt格式打开后是否有所不同,nothing is here.之后通过电脑魔方大师的MD5校验,想查看一下它是否为关键点,可是没有任何收获。之后只是想查看反汇编代码,在关键函数调用处的,但是我对反汇编不熟悉了,所以没有尝试。

后记分析:最悲催的又是在windows环境下,赛题已经提示了diffdiff命令在linux下就是一个简单的命令,而在windows需要使用比较文件不同的工具。找出不同的地方然后使用rot13解密即可。


9Vi

这道题对题意的理解就不是很好,文中已经提示了文件名带有“~”这个,而我需要访问目录将其下载下来,应该这样的查找“*~*.*”,找到只需要好好阅读这个脚本就可以了。


10Visit

阅读网页源代码,发现一个unescape函数的调用,将编码后的内容解码后获得衣蛾隐含信息“red.php”,在当前url添加red.php进行访问http://ctf.xdsec.org:2013/basic/visit/red.php,之后返回其为隐藏页面,说明思路正确。但在页面有提示,只接受来自西电官网的请求,可以在这里猜想需要修改referer为西电官网即可,但那时候使用Tamper data但却没有拦截到referer方面的信息,那时没有想到自己构造request数据包。之后获得返回页面观察网页源代码即可获得提示,转换为ascii输入不正确,再继续尝试MD5的16位解密,通过免费的MD5网站http://www.md5.asia/解密即可

一次成长的历程,希望下次得参赛会有更好的成绩。这次参赛的过程中自己就有一段时间特别低迷,那时总想着尽自己最大的努力做好,可是却忘了我参加比赛的初衷是为了学习。以比赛推动自己更好的前进。幸好有我的队友。有一天我会让你看到我成长之后的姿态,to LTT
ps:最后附上XDCTF的赛题和解答:http://pan.baidu.com/s/1opBfK