『Web安全』入门级实战教程——Web基础(二)
这是一个为开发、运维及安全从业者构建的:
系统的拆解Web安全的关键领域。
内容涵盖 “原理深入-实战驱动-体系构建”
为你提供一条清晰的进阶路径。
使你在面任何新型漏洞时,迅速定位问题,理解漏洞本质,形成有效的防御思路。
Web基础
前一部分,我们讲解了Web相关的基础概念;常见服务器;应用框架;Django框架以及详细案例拆解
HTTP的协议基础
HTTP协议定义了,
Web客户端如何从Web服务器,
请求Web页面。
以及服务器如何把Web页面,
传送给客户端。
运行流程
客户端连接到Web服务器
一个HTTP客户端,如浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。
一个响应由状态行、响应头部、空行(请求空行)和响应数据(请求体)4部分组成。
释放连接TCP连接
若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接。
若connection模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。
客户端浏览器解析HTML内容
最后客户端收到的就是一个静态的HTML内容
常见的Web服务器
Apache HTTP Server
简称Apache,是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一。
Nginx
是一个网页服务器,能反向代理HTTP, HTTPS,SMTP,POP3,IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
IIS
(InternetInformationServer)是微软公司主推的服务器。
Lighttpd
德国人领导的开源Web服务器软件,具有极低的内存开销、CPU占用率低、效能好以及丰富的模块等特点。
Tomcat
Apache软件基金会的Jakarta项目中的核心项目,Tomcat技术先进、性能稳定,且免费,因而深受Java爱好者的喜爱,成为目前比较主流的Web应用服务器。
请求方法
GET
POST
是最常见的HTTP方法,
除此以外还包括
DELETE
HEAD
OPTIONS
PUT
TRACF
(1) 从参数的传递方面来看,
GET请求的参数是直接拼接在地址栏URL的后面,
POST请求的参数是放到请求体里面的。
(2) 从长度限制方面来看,
GET请求有具体的长度限制,一般不超过1024KB,
POST理论上没有,但是浏览器一般有个界限。
(3) 从安全方面来看,
GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST。
(4) 本质上来说,GET和POST都是TCP连接,并无实质的区别。
但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同。
GET产生一个数据包,POST产生两个数据包。对于GET请求,浏览器会把http header和data一并发出去,服务器响应200(返回数据)。
而对于POST,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200ok。
示例
利用上次我们搭建的网站
通过Debug的方式,请求hello world
可以看到这是通过GET方式发送的一个请求,
也并没有其他参数,
访问资源类型是GET最主要的应用场景。
对于涉及一定私密性的登录行为
就会通过POST的方式发送的请求
并且内容里会附加了我们的数据
然后我们切换到服务器的后台,可以看到刚刚服务器收到了
对于hello world这个链接的GET访问请求
对于admin login这个链接的POST登录请求
****(1)HTTP请求方法
目前来讲,最主要的适用版本是HTTP 1.1版本
****(2)HTTP响应代码
安全溯源
WEB应用全部都是建立在HTTP协议基础上,是对HTTP协议的实际应用。
WEB应用在实现HTTP协议的过程中,没有做足够充足强大的约束,导致攻击者能够利用其中的薄弱环节进行攻击。
根据Web安全的种类,可以分为下面三个大类
****(1)客户端的脚本安全
****(2)服务端的应用安全
****(3)业务逻辑层的安全
web安全的本质在于信任
**
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。
L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。
L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。
L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题
整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
四、网络安全护网行动/CTF比赛
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…