优秀的人,不是不合群,而是他们合群的人里面没有你
CTF
最近开始有需求打比赛,临时抱佛脚,个人计划是学习训练web,crypto,reverse和misc这四门课程,首先学习相关知识,然后针对性的刷题,把那些有提升性的解题思路记录到博客。
web
主要是一些常见漏洞的考验,以及基础网络知识的检测。学习思路为首先学习相关知识,做好笔记记录后,直接做题,然后总结思路。
常见的漏洞有
- SQL注入
- xss
- 文件包含
- 文件上传
- 命令执行
- 代码执行
- 反序列化
- XXE XML 外部实体注入攻击
- CSRF跨站请求伪造
- SSRF服务器端请求伪造
- 越权
- 业务逻辑漏洞
- 其他类型
基础知识包含
- 查看页面源码
- http请求头数据分析(cookie,修改请求头)
- 敏感数据泄露(bak,swp,git,zip)
- 各种编码(base64,url编码,unicode1编码)
- js代码阅读
- 其他
以及用的最多的PHP代码审计
- 弱类型比较
- 哈希比较
- md5 sha1函数缺陷
- 数字比较
- intval函数缺陷
- strcmp函数缺陷
- ereg函数缺陷
- strlen函数缺陷
- preg_match函数缺陷
- is_numeric函数缺陷
- extract($_GET[‘id’])函数
crypto
密码学掌握的东西很多很杂,但是主要掌握三个方面,编码,古典密码和现代RSA/等加密。
学习思路为学习记录常见编码长啥样,古典密码有哪些和使用工具破解,以及最难的RSA加密算法原理。
然后开始刷题,针对性把有收货的题记录,并且多多保存一下解密脚本。
misc
杂项就是乱七八糟的都有,但是主要包含
- 信息收集,一些题目可能需要百度才有思路
- Encode(编码转换)
- 数字取证主要是wireshark流量分析,日志分析
- 隐写分析zip,图片等文件,这个很大很杂乱,需要笔记好好梳理一下
reverse
逆向主要指对软件的结构,流程,算法,代码等进行逆向拆解和分析
- 使用
strings/file/binwalk/IDA
等静态分析工具收集信息,并根据这些静态信息进行google/github
搜索 - 研究程序的保护方法,如代码混淆,保护壳及反调试等技术,并设法破除或绕过保护
- 反汇编目标软件,快速定位到关键代码进行分析
- 结合动态调试,验证自己的初期猜想,在分析的过程中理清程序功能
- 针对程序功能,写出对应脚本,求解出flag