├── README.md ├── WEB安全渗透测试基础知识(一).md ├── WEB安全渗透测试基础知识(七).md ├── WEB安全渗透测试基础知识(三).md ├── WEB安全渗透测试基础知识(九).md ├── WEB安全渗透测试基础知识(二).md ├── WEB安全渗透测试基础知识(五).md ├── WEB安全渗透测试基础知识(八).md ├── WEB安全渗透测试基础知识(六).md ├── WEB安全渗透测试基础知识(十一).md ├── WEB安全渗透测试基础知识(十七).md ├── WEB安全渗透测试基础知识(十三).md ├── WEB安全渗透测试基础知识(十二).md ├── WEB安全渗透测试基础知识(十五).md ├── WEB安全渗透测试基础知识(十八).md ├── WEB安全渗透测试基础知识(十六).md ├── WEB安全渗透测试基础知识(十四).md ├── WEB安全渗透测试基础知识(十).md ├── WEB安全渗透测试基础知识(四).md ├── burp.png ├── linux CIS .xmind ├── 信息收集.xmind └── 数据库基线加固.xmind /README.md: -------------------------------------------------------------------------------- 1 | # CIS 2 | linux基线检查 3 | 包含了Linux上几乎所有的安全检查点 4 | -------------------------------------------------------------------------------- /WEB安全渗透测试基础知识(一).md: -------------------------------------------------------------------------------- 1 | # WEB安全渗透测试基础知识(一) 2 | 3 | **1.1. Web技术演化** 4 | 5 | 6 | 1.1.1. 静态页面 7 | 在互联网最初开始的时候,Web网站的主要内容是静态的,由文字和图片组成,制作和表现形式也是以表格为主。当时的用户行为也非常简单,仅仅是浏览网页。 8 | 9 | 10 | ------------ 11 | 12 | 1.1.2. 多媒体阶段 13 | 随着技术的不断发展,音频、视频、Flash等多媒体技术诞生了。多媒体的加入使得网页变得更加生动形象,网页上的交互也给用户带来了更好的体验。 14 | 15 | ------------ 16 | 17 | 1.1.3. CGI阶段 18 | 渐渐的,多媒体已经不能满足人们的请求,于是CGI(Common Gateway Interface)应运而生。CGI定义了Web服务器与外部应用程序之间的通信接口标准,因此Web服务器可以通过CGI执行外部程序,让外部程序根据Web请求内容生成动态的内容。 19 | 在这个时候,各种编程语言如PHP/ASP/JSP也逐渐加入市场,基于这些语言可以实现更加模块化的、功能更强大的应用程序。 20 | 21 | ------------ 22 | 23 | 1.1.4. Ajax 24 | 在开始的时候,用户提交整个表单后才能获取结果,用户体验极差。于是Ajax(Asynchronous Javascript And XML)技术逐渐流行起来,它使得应用在不更新整个页面的前提下也可以获得或更新数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。 25 | 26 | ------------ 27 | 28 | 1.1.5. MVC 29 | 随着Web应用开发越来越标准化,出现了MVC等思想。MVC是Model/View/Control的缩写,Model用于封装数据和数据处理方法,视图View是数据的HTML展现,控制器Controller负责响应请求,协调Model和View。 30 | Model,View和Controller的分开,是一种典型的关注点分离的思想,使得代码复用性和组织性更好,Web应用的配置性和灵活性也越来越好。而数据访问也逐渐通过面向对象的方式来替代直接的SQL访问,出现了ORM(Object Relation Mapping)的概念。 31 | 除了MVC,类似的设计思想还有MVP,MVVM等。 32 | 33 | ------------ 34 | 35 | 1.1.6. RESTful 36 | 在CGI时期,前后端通常是没有做严格区分的,随着解耦和的需求不断增加,前后端的概念开始变得清晰。前端主要指网站前台部分,运行在PC端、移动端等浏览器上展现给用户浏览的网页,由HTML5、CSS3、JavaScript组成。后端主要指网站的逻辑部分,涉及数据的增删改查等。 37 | 此时,REST(Representation State Transformation)逐渐成为一种流行的Web架构风格。 38 | REST鼓励基于URL来组织系统功能,充分利用HTTP本身的语义,而不是仅仅将HTTP作为一种远程数据传输协议。一般RESTful有以下的特征: 39 | - 域名和主域名分开 40 | api.example.com 41 | example.com/api/ 42 | - 带有版本控制 43 | api.example.com/v1 44 | api.example.com/v2 45 | - 使用URL定位资源 46 | GET /users 获取所有用户 47 | GET /team/:team/users获取某团队所有用户 48 | POST /users 创建用户 49 | PATCH/PUT /users 修改某个用户数据 50 | DELETE /users 删除某个用户数据 51 | - 用 HTTP 动词描述操作 52 | GET 获取资源,单个或多个 53 | POST 创建资源 54 | PUT/PATCH 更新资源,客户端提供完整的资源数据 是 DELETE 删除资源 55 | 正确使用状态码 56 | 使用状态码提高返回数据的可读性 57 | - 默认使用 JSON 作为数据响应格式 58 | - 有清晰的文档 59 | 60 | ------------ 61 | 62 | 1.1.7. 云服务 63 | 随着时间的发展,Web的架构越发复杂,负载均衡、数据库分表、异地容灾、缓存、CDN、消息队列等技术开始应用,增加了Web开发和运维的复杂度。同时云服务开始逐渐发展,部署环境容器化,各个功能拆成微服务或是Serverless的架构。 64 | 65 | **1.2. 计算机网络 ** 66 | 67 | 1.2.1. 计算机通信网的组成 68 | 计算机网络由通信子网和资源子网组成。 69 | 其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制、流量控制、路由选择、网络互连等。 70 | 其中资源子网:是计算机通信的本地系统环境,包括主机、终端和应用程序等, 资源子网的主要功能是用户资源配置、数据的处理和管理、软件和硬件共享以及负载 均衡等。 71 | 计算机通信网就是一个由通信子网承载的、传输和共享资源子网的各类信息的系统。 72 | 73 | 74 | ------------ 75 | 76 | 1.2.2. 通信协议 77 | 为了完成计算机之间有序的信息交换,提出了通信协议的概念,其定义是相互通信的双方(或多方)对如何进行信息交换所必须遵守的一整套规则。 78 | 协议涉及到三个要素,分别为: 79 | 语法:语法是用户数据与控制信息的结构与格式,以及数据出现顺序的意义 80 | 语义:用于解释比特流的每一部分的意义 81 | 时序:事件实现顺序的详细说明 82 | 83 | ------------ 84 | 85 | 1.2.3. OSI七层模型 86 | 1.2.3.1. 简介 87 | OSI(Open System Interconnection)共分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层,其具体的功能如下。 88 | 89 | 1.2.3.2. 物理层 90 | 提供建立、维护和释放物理链路所需的机械、电气功能和规程等特性 91 | 通过传输介质进行数据流(比特流)的物理传输、故障监测和物理层管理 92 | 从数据链路层接收帧,将比特流转换成底层物理介质上的信号 93 | 94 | 1.2.3.3. 数据链路层 95 | 在物理链路的两端之间传输数据 96 | 在网络层实体间提供数据传输功能和控制 97 | 提供数据的流量控制 98 | 检测和纠正物理链路产生的差错 99 | 格式化的消息称为帧 100 | 101 | 1.2.3.4. 网络层 102 | 负责端到端的数据的路由或交换,为透明地传输数据建立连接 103 | 寻址并解决与数据在异构网络间传输相关的所有问题 104 | 使用上面的传输层和下面的数据链路层的功能 105 | 格式化的消息称为分组 106 | 107 | 1.2.3.5. 传输层 108 | 提供无差错的数据传输 109 | 接收来自会话层的数据,如果需要,将数据分割成更小的分组,向网络层传送分组并确保分组完整和正确到达它们的目的地 110 | 在系统之间提供可靠的透明的数据传输,提供端到端的错误恢复和流量控制 111 | 112 | 1.2.3.6. 会话层 113 | 提供节点之间通信过程的协调 114 | 负责执行会话规则(如:连接是否允许半双工或全双工通信)、同步数据流以及当故障发生时重新建立连接 115 | 使用上面的表示层和下面的传输层的功能 116 | 117 | 1.2.3.7. 表示层 118 | 提供数据格式、变换和编码转换 119 | 涉及正在传输数据的语法和语义 120 | 将消息以合适电子传输的格式编码 121 | 执行该层的数据压缩和加密 122 | 从应用层接收消息,转换格式,并传送到会话层,该层常合并在应用层中 123 | 124 | 1.2.3.8. 应用层 125 | 包括各种协议,它们定义了具体的面向拥护的应用:如电子邮件、文件传输等 126 | 127 | 1.2.3.9. 总结 128 | 低三层模型属于通信子网,涉及为用户间提供透明连接,操作主要以每条链路( hop-by-hop)为基础,在节点间的各条数据链路上进行通信。由网络层来控制各条链路上的通信,但要依赖于其他节点的协调操作。 129 | 高三层属于资源子网,主要涉及保证信息以正确可理解形式传送。 130 | 传输层是高三层和低三层之间的接口,它是第一个端到端的层次,保证透明的端到端连接,满足用户的服务质量( QoS)要求,并向高三层提供合适的信息形式。 131 | 132 | 133 | -------------------------------------------------------------------------------- /WEB安全渗透测试基础知识(七).md: -------------------------------------------------------------------------------- 1 | # WEB安全渗透测试基础知识(七) 2 | 3 | **3.3. CSRF漏洞** 4 | 5 | 3.3.1. 简介 6 | CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。 7 | 8 | ------------ 9 | 10 | 3.3.2. 分类 11 | 3.3.2.1. 资源包含 12 | 资源包含是在大多数介绍CSRF概念的演示或基础课程中可能看到的类型。这种类型归结为控制HTML标签``` 13 | (例如