个人学习参考用笔记
前言
最近开始系统学习网络安全渗透方面的知识,一直也想试着写写博客,这里整理一下近期学习的笔记,也作为写博客的一个开始。
一、基本概念
(一)域名
网域名称系统(Domain Name System)有时也简称为域名(DNS),是互联网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数据串。
1.多级域名
- 顶级域名:也叫一级域名,互联网DNS等级之中的最高级的域,它保存于DNS根域的名字空间中。例如bilibili.com
- 二级域名:一个一级域名以下的主机名,最靠近顶级域名左侧的字段。例如www.bilibili.com
- 三级域名:二级域名的子域名。例如___.___.bilibili.com
注:x级域名判断方法即包含x个“.”
2.域名于信息收集
进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,有可能测试子域名网站时会有意向不到的效果,然后可以由此横向到主网站。
3.本地Host
Hosts文件主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
4.CDN
CDN的全称是Content DeliveryNetwork,即内容分发网络。使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
单纯只使用DNS解析,直接PING就会显示出自己的真实IP,如果又使用CDN,PING出来的IP就不是用户的真实IP而是CDN服务器的IP节点。需要绕过CDN后去找真实IP地址。
5.常见的DNS攻击
1)DDOS
拒绝式服务攻击,攻击者可以伪造自己的DNS服务器地址,同时发送大量请求给其他服务器。其他服务器的回复会被发送到被伪造服务器的真实地址,造成该服务器无法处理请求而崩溃。
2)DNS缓存中毒
DNS缓存中毒攻击者给DNS服务器注入非法网络域名地址,用户的浏览器或者邮件服务器就会自动跳转到DNS指定的地址。与钓鱼攻击采用非法URL不同的是,这种攻击使用的是合法的URL地址。
3)域名劫持
也称DNS重定向,域名劫持是通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。域名劫持一方面可能影响用户的上网体验,用户被引到假冒的网站进而无法正常浏览网页,而用户量较大的网站域名被劫持后恶劣影响会不断扩大;另一方面用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
4)查询嗅探
攻击者主要利用对DNS的配置信息获取网络环境的信息
5)ARP欺骗
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP病毒,则感染该ARP病毒的系统将会试图通过”ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
(二)后门
后门是指绕过安全控制而获取对程序或系统访问权的方法。后门的最主要目的就是方便以后再次秘密进入或者控制系统
(三)Web安全
1.Web组成
1)网站源码
脚本语言分类:Python、JavaScript、PHP、Asp
框架分类
2)操作系统
- windows
- linux
3)中间件
- apache
- nginx
- tomcat
- IIS
4)数据库
- mysql
- mssql
- access
- oracle
二、http/https数据包
(一)http协议
1.http协议
定义:
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。
原理:
HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件,、图片文件, 查询结果等。
HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
特点:
- http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
- 灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。
- 无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
- 无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。
2.http报文
请求报文
请求行、请求头、请求正文
请求方法:
- GET: 请求指定的页面信息,并返回实体主体。
- POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
- HEAD: 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
- PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
- DELETE: 请求服务器删除指定的页面。
响应报文
状态行、状态头、状态正文
响应状态码:
- 1XX- 信息型,服务器收到请求,需要请求者继续操作。
- 2XX- 成功型,请求成功收到,理解并处理。
- 3XX - 重定向,需要进一步的操作以完成请求。
- 4XX - 客户端错误,请求包含语法错误或无法完成请求。
- 5XX - 服务器错误,服务器在处理请求的过程中发生了错误。
常见状态码:
- 200 OK - 客户端请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 302 - 临时跳转
- 400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
- 404 - 请求资源不存在,可能是输入了错误的URL
- 500 - 服务器内部发生了不可预期的错误
- 503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
(二)https协议
1.http存在的问题
- 请求信息明文传输,容易被窃听截取。
- 数据的完整性未校验,容易被篡改
- 没有验证对方身份,存在冒充危险
2.https协议
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。