iscc 2009

真的有点搞不下去了

基础关:

还真算是基础,但也学到了很多东西,http–reference算是最大的收获,本地提交也让我知道了,封包截取指示下下策。该死的循环干扰码,用regular expression两次提交都没有通过,估计是太草率了,没有考虑太多,就疯狂的替换了,现在倒是想明白了,可真是没脸再提交了。
最后的autoback,我发现了index.php存在index.php.bak但对于php环境不像asp,php.bak一样可以被解析,无法下载察看代码,虽然index.php.bak里action=basic_4.php不同于index.php,但也实在没找到这个页面,郁闷极了,憋了好几个下午都快吐血了。

脚本关:

前几关怎么过得都快忘干净了,前面会的,很快就通过了,后面德就死活搞不出来。比较欣慰的是数据库连接文件conn.asa总算是猜出来了。后面的倒数第三关好像过滤了space和%,总之就是提交失败。天杀的csrf xss我试了好久,终于绕过了字符过滤。诡异的就是明明提交了adduser的参数,为什么就是没能让管理员添加我,也尝试了cookie窃取,还特意在校内某服务器上搭建了asp环境来截获cookie,可除了自己的一无所获。今天以下午都在这耗着,我真的要放弃这几关了,平日积累真的是不太够,一直没太重视他们。

破解关:

这算是我最自豪的了,刚好最近做的那个创新项目就是研究shell,对于这种汇编代码的分析还比较得心应手,特别是各种anti一眼就看了出来,第五个shell也比较容易脱掉,我就直接带壳调试了,最终也还算运气比较好,跳过了一些环节后直接到了算法部分,其实只靠算法答案有6!种,但我比较幸运猜到了各位的关系。其中jmp eax是直接跳过了,真不知道正常情况下,哪个环节的跳转怎么从堆栈返回。不过这个方法倒是可以借鉴到我的shell编写中。

溢出关:

概念清晰很重要啊,没想到我的概念清晰到每个环节,第一次来真格的进行overflow竟然还真成功了,不过当然也是因为题目简单,思路其实很简单,就是覆盖返回的eip,heap seh等等我生疏的概念一个也用不到,比较头疼的就是最后一个overflow,shellcode因为都是自己写的,代码的选择费了好大的劲,还好不要求功能,要不就累死了。另外发现工具的使用也非常重要,一个得心应手的16进制编辑器是必需的,我的用得不太好,每次几百字节的shellcoded都是自己手动写的机器码,真想吐血。
内核关:虽然我挺喜欢编程序,但看来要搭建环境比较麻烦,把资料下载下来,留待假期研究吧
收获嘛,真的是太大了,感觉一下进步了不少,至少是增长了知识。