目录
概念名词
1.域名
域名: 网域名称系统(Domain Name System)有时也简称为域名(DNS),是互联网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数据串。
二级域名多级域名:
二级域名:实际上就是一个一级域名以下的主机名
多级域名:概念等同于二级域名,类似于二级域名的延伸。
域名发现对于安全测试意义: 进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,有可能测试子域名网站时会有意向不到的效果,然后可以由此横向到主网站。
本地host文件和dns关系:
Host文件路径(dns的本地缓存):C:\Windows\System32\drivers\etc\hosts
作用机制:查找域名解析时,先看本地host文件是否有缓存,没有在查找域名服务器。
CDN和DNS的关系:
CDN: 即内容分发网络。通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN作用: 访问的时候找一个网络最好,通讯最快的节点,访问网络时是访问一个节点,用来解决访问速度。
CDN缺点: 由于有节点,访问网络时,请求的是一个节点,真实数据和网络相关核心不在节点上,节点相当于缓存。
两者之间关系: 更改DNS服务器,就相当于有可能访问到另一个节点。
2.DNS
DNS攻击类型 | 方法 |
---|---|
DNS 污染攻击 | 攻击者篡改 DNS 服务器的响应,向用户提供错误的 IP 地址,从而导致用户访问到错误的网站或域名。 |
DNS 劫持攻击 | 攻击者通过攻击 DNS 服务器或中间路由器,劫持用户的 DNS 查询,并向用户提供错误的 IP 地址,从而使用户访问错误的网站或域名,或者劫持用户的网络流量并进行中间人攻击。 |
DNS 爆破攻击 | 攻击者通过大量的 DNS 查询请求猜测 DNS 查询的域名,从而发现域名的真正 IP 地址,对目标网络进行攻击。 |
DNS 放大攻击 | 攻击者利用 DNS 协议的特点,向 DNS 服务器发送大量的 DNS 查询请求,使服务器响应大量的 DNS 数据包,从而占用服务器资源,甚至造成拒绝服务攻击。 |
DNS 欺骗攻击 | 攻击者伪造 DNS 响应,将用户的 DNS 请求重定向到攻击者指定的网站或域名,并进行钓鱼攻击。 |
DNS 反射攻击 | 攻击者利用 DNS 服务器中的开放式递归查询,向服务器发送假冒的 DNS 请求,使服务器向攻击目标发送大量的 DNS 响应数据包,从而进行拒绝服务攻击。 |
3.脚本语言
- PHP、JavaScript、Python、ASP、ASPX、Javaweb等
- 不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样
4.后门
后门: 可以理解为攻击者,在得到相关的非法入侵后,留下后门文件,便于下次进行操作,拿到权限。
后门的意义: 方便攻击者下一次进入。
获取到相关权限后,后门类似于管道,为我们提供通道,去操作服务器或网站。
5.WEB
- WEB的组成框架模型:网站原码、操作系统、中间件(搭建平台,提供服务的)、数据库。
- web相关漏洞
WEB类别 | 对应漏洞 |
---|---|
源码类 | SQL注入\文件上传\xss\代码执行\变量覆盖\逻辑漏洞\反序列化 |
中间件 | PUT漏洞\短文件名猜解\远程代码执行\解析漏洞\未授权访问 |
数据库 | 内核漏洞 |
系统层 | 提权漏洞\安全代码执行 |
其他第三方 | 电脑安装的第三方软件 |
APP或PC应用结合类 | 移动端\PC端\网页端 |
数据包扩展
1.http协议请求与响应
http协议请求与响应报文:
部分 | 描述 |
---|---|
请求行 | 包括请求方法、URL和HTTP协议版本 |
消息报头 | 包括一系列的名称/值对,用于描述请求/响应的属性 |
请求正文 | 可选的,用于在HTTP请求中传递数据 |
状态行 (响应) | 包括HTTP协议版本、状态代码和状态代码的描述 |
消息报头 | 包括一系列的名称/值对,用于描述响应的属性 |
响应正文 | 包含服务器返回的数据 |
请求头字段
请求头 | 描述 |
---|---|
Host | 主要用于指定被请求资源的Internet主机和端口号 |
User-Agent | 向服务端传递客户端操作系统、浏览器、和其他属性 |
Referer | 包含一个URL,代表当前URL的上一个URL |
Cookie | 是一段文本,通常来表示请求者的身份 |
Range | Range可以请求实体部分内容,多线程下载一定会用到此请求头 |
x-forward-for | 即XFF头,代表请求端的IP,也可以是多个,中间用逗号隔开 |
Accept | 用于指定客户端接收哪些MIME类型的信息 |
Accept-Charset | 用于指定客户端接收的字符集 |
HTTP响应
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
- 1xx:指示信息–表示请求已接收,继续处理,范围是100~101
- 2xx:成功–表示请求已被成功接收、理解、接受,范围是200~206
- 3xx:重定向–要完成请求必须进行更进一步的操作,范围是300~305
- 4xx:客户端错误–请求有语法错误或请求无法实现,范围是400~415
- 5xx:服务器端错误–服务器未能实现合法的请求,范围是500~505
常见状态码 | 含义 |
---|---|
200 | 客户端请求成功 |
302 | 重定向 |
404 | 请求的资源不存在 |
400 | 客户端请求有语法错误,不能被服务器所理解 |
401 | 请求未授权 |
403 | 服务器收到请求,但是拒绝提供服务 |
500 | 服务器内部错误 |
503 | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 |
HTTP请求方式
GET | GET方法用于获取请求页面的指定形式 |
---|---|
POST | GET方法没有请求内容,而POST是有请求内容的,且GET请求会将发送的数据显示在浏览器端,而POST请求则不会 |
HEAD | HEAD方法除了服务器不能在响应里返回消息主体,其他的与GET方法相同 |
PUT | PUT方法用于请求服务器把请求实体存储在请求资源下,如果请求资源已经存在服务器中,将会用此请求中的数据替换原先的数据,作为指定支援的最新修改版。 |
DELETE | DELETE方法用于请求资源服务器删除指定的支援 |
---|---|
TRACE | TRACE方法一般用于激发一个远程应用层的请求消息回路。回显服务器收到得到请求。 |
CONNECT | 为了用于能动态的切换到隧道的代理 |
OPTIONS | OPTIONS方法用于请求获取URI标识的资源在请求/响应的通信过程中可以使用的功能选项。 |
2.HTTP安全问题
HTTP与HTTPS
HTTP面临着数据明文传送和缺乏对消息完整性的验证这两个问题。
- HTTP与HTTPS区别
HTTP协议 | HTTPS协议 |
---|---|
信息明文传输 | 有安全性的SSL加密传输协议 |
HTTP是80端口 | HTTPS是443端口 |
需要到CA申请证书 | 而HTTP不需要 |
连接相对简单,是无状态的 | 由SSL+HTTP协议构建的可进行加密传输 |
搭建安全拓展
1.常见搭建平台脚本启用
ASP,PHP,ASPX,JSP,PY,JAVAWEB等环境
2.域名旧目录解析安全问题
- 基于中间件的安全漏洞
-
IIS
1、PUT漏洞
2、短文件名猜解
3、远程代码执行
4、解析漏洞 -
Apache
1、解析漏洞
2、目录遍历 -
Nginx
1、文件解析
2、目录遍历
3、CRLF注入
4、目录穿越 -
Tomcat
1、远程代码执行
2、war后门文件部署 -
jBoss
1、反序列化漏洞
2、war后门文件部署 -
WebLogic
1、反序列化漏洞
2、SSRF
3、任意文件上传
4、war后门文件部署