前提
系统学习任意一门编程语言,了解数据类型、对象、方法等概念,能够大概看懂代码即可。我在大一课上学了C和Java,后来在实践中断断续续学了些python、php和go。
了解TCP/IP协议,梳理发起一次网络请求到收到响应经历了什么,认识HTTP报文的格式。
工具
- vscode:编程用
- wireshark:看请求与响应过程产生的行为
- 科学上网(必备技能)
- typora:做笔记
tips
可能出现一些刚入门时看不懂的术语,baidu一下就行,或者ai一下。
学习的过程中可能会因为软件版本不一致、系统环境不一致甚至一些说不上来的问题导致卡在一个地方停滞不前,努力克服,克服不了就换一条路,没有什么是替代不了的。
文章中没有特别说明工具的版本,因为对于初学者来说并不重要,能正常运行就很好了。
学习的先后顺序并不严格,一个方向学累了就换一个,兴趣和良好的反馈是最大的驱动力。
网站运行机制
工具
- burpsuite:看请求与响应过程产生的HTTP报文
- DVWA:看源码熟悉网站的数据传递方式,熟悉Javascript、PHP、SQL
- phpstudy:结合DVWA,尝试用自己电脑搭建靶场环境
- 内置MySQL
- 内置phpmyadmin,可视化数据库的工具
前端
主要是Javascript
- 浏览器如何接收用户输入?常见的如:form表单
- 前端如何发起HTTP请求?常见的如:ajax
- 如何响应并呈现数据?前端渲染,常见的如:jinja2
后端
不同的语言处理方式大同小异
- 中间件的作用?常见的如Apache、Ngnix、Tomcat
- 怎么从HTTP报文中获取数据?区别get和post,认识参数
- 与数据库的交互
- web服务器怎么连接数据库服务器?
- sql增删查改
靶场
DVWA
或者pikachu,都是综合类靶场,能快速了解常见漏洞。
完全看着教程做或者直接看源码找漏洞也没关系……主要目的是:
- 了解常见的漏洞原理/产生原因/场景
- 熟悉常用工具
- 尝试自己写WP和总结(学了一段时间再返回去看之前的WP也是一种乐趣……看几眼就有想删掉的冲动)
专项
有些重要的漏洞可强化练习,虽然我自己做的时候觉得有些绕过方式非常难理解……
- sqli-labs
- upload-labs
CTF
比DVWA和专项练习有趣很多,而且是在线环境,不用搭环境了耶
- 攻防世界:有难度等级,WP多,易于入门
- BUUCTF:真题多,WP多,能快速扩大知识面
- bugku:国外的比赛题多
- ctfshow:听说不错
- 青少年ctf
- ……
—2024.05.28—