2020寒假训练计划
今天是2019年的最后一天了,按照计划。应当对Python有了初步了解,Linux基础操作比较熟悉。
是时候分一下方向了,首先看看各个方向该学些什么。
Web
PHP
在Web通常是以代码审计、PHP各种协议、特性等等情况出现。基础要求是看懂题中的PHP代码,然后要对题目中常见绕过方法有了解。因此,PHP语言上,要学习到面对对象,能了解PHP序列化和反序列化及各种魔法方法。还要多刷题,了解题目的一些常见的考点,针对考点学习。
SQL
要学习SQL注入首先要会SQL的基础语法,SQL语法比较简单,看一遍W3CSchool菜鸟教程就能会,还可以在LeetCode上数据库部分刷几道SQL的题来巩固一下。数据库注入还需要了解的是像MySQL这样的数据库,学习数据库可以看《MySQL必知必会》,百度就能下载到PDF。然后这时,就可以开始了解SQL注入的原理,了解常见的注入手段及常见限制手段,然后在各大OJ上刷题,了解常见过滤绕过方法。
XSS
首先得了解JavaScript,可以先看看廖雪峰的JS教程。了解JS后,需要知道XSS是怎样产生的,知道常见的过滤方式及绕过方式。
常见Web渗透方式
常见的包括CSRF、SSRF、XSRF、XXE等等,可以百度一下尝试去了解一下。
这类题实战性比较强,可以在刷题时遇到时练习。
其他Web框架
像这一类题通常会采用Python的一些Web框架,如Flask、Tornado、Django等等这涉及到对这些框架的了解程度。可以尝试去了解学习这些框架,了解这些框架的开发部署方式即可。如Flask 会有沙箱逃逸漏洞等等
PWN、Reverse
前置知识:
熟练C语言
这个没啥好说的,可以在PTA等等OJ练习C语言,练习时可以看看各个头文件中有哪些函数,诸如stdlib.h、stdio.h等等。可以在菜鸟教程里面看到各个函数及其用法。
汇编语言
推荐看王爽《汇编语言》这本书,每章节后面都有相应的习题。完成这本书就算入门汇编语言了。
熟悉Linux操作
PWN的做题环境都在Linux。因此任何环境配置、Linux基础操作都不能成为做题的障碍。
Python
Python主要在PWN中写攻击脚本,能写简单脚本就行
总之先掌握这些前置知识再开始刷题吧
Misc
上图就完事了
Crypto
对称加密(Symmetric Cryptography),以 DES,AES,RC4 为代表。
非对称加密(Asymmetric Cryptography),以 RSA,ElGamal,椭圆曲线加密为代表。
哈希函数(Hash Function),以 MD5,SHA-1,SHA-512 等为代表。
数字签名(Digital Signature),以 RSA 签名,ElGamal 签名,DSA 签名为代表。
总之包括这些方面,一般入门从非对称加密的RSA开始。,入门密码学可以百度学习RSA。
RSA题目可以从jarvisOJ开始,分别是Basic分类里的VeryEasy_Rsa开始最后到Crypto分类里的God Like RSA这几个难度。
其中RSA题目需要使用Python2相关库gmpy2及Crypto库
最后
说了这么多,那么这个寒假的任务是什么呢?
- 选择一个你想学习的方向
- 如果你想学习Web方向,至少PHP学习到面对对象部分,明白SQL注入是怎么一回事,要开始做一定量的题目
- 如果你想学习PWN/Reverse方向,至少学习完汇编语言及其他前置知识
- 不管是Web方向还是PWN/Reverse方向,都可以对照安全杂项(Misc)的图去学学,提高学习兴趣(很多杂项上的知识都是日常有应用的)
- 在几个CTF—OJ注册账号(可别真就只是注册账号,也要刷几道题)
CTF说到底是信息安全的比赛,可以多多关注一下信息安全相关消息 如 FreeBuf
附OJ