小迪安全学习笔记【1】
概念名词
域名
1.域名是网站的唯一名称,比如 runoob.com。
2.域名是需要注册的。当域名被注册后,就会被添加到大的域名注册商那里,连同与您的网站有关的信息 - 包括被保存在 DNS 服务器的 IP 信息。
3.DNS 指的是域名系统 (Domain Name System)。DNS 服务器负责向 internet 上的其他计算机通知有关你的域名和地址的信息。
DNS
什么是 DNS?
域名系统(Domain Name System)
它是一个域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
本地 HOSTS与DNS的关系?
Hosts在本地将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当我们访问域名时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
Hosts地址:C:Windows System32 drivers etc hostsCDN 是什么?与DNS 的关系?
CDN:是构建在数据网络上的一种分布式的内容分发网。可以提高系统的响应速度,也可以一定程度的拦截/f防御攻击
常见的 DNS安全攻击有哪些?
- 缓存投毒:它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。
- DNS劫持:DNS劫持又称域名劫持,是攻击者利用缺陷对用户的DNS进行篡改,将域名由正常IP指向攻击者控制的IP,从而导致访客被劫持到一个不可达或者假冒的网站,以此达到非法窃取用户信息或者破坏正常网络服务的目的。DNS劫持可用于DNS域欺骗或用于网络钓鱼。互联网服务提供商也可能通过DNS劫持来接管用户的DNS请求,收集统计数据并在用户访问未知域名时返回广告或者屏蔽对特定网站的访问。
- DNS放大攻击是一种流行的DDoS攻击形式,其中目标系统被来自公共DNS服务器的查询响应淹没。攻击者向公共DNS服务器发送DNS名称查询,使用受害者的地址作为源地址,导致公共DNS服务器的响应都被发送到目标系统。攻击者通常会查询尽可能多的域名信息,以最大限度地发挥放大效果。通过使用僵尸网络,攻击者也可以毫不费力地生成大量虚假DNS查询。此外,由于响应是来自有效服务器的合法数据,因此很难防止DNS放大攻击。
脚本语言
常见的脚本语言类型有哪些?
asp php aspxjsp javaweb plpy cgi 等
不同脚本类型与安全漏洞的关系?
- 不同脚本可能爆发漏洞的可能性有所不同
- 不同脚本漏洞的存在点可能不同,因为不同语言的适用范围不同
后门
什么是后门?
- 通常指那些绕过安全性控制而获取对程序或系统访问权的程序方法。
- 在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。
后门在安全测试中的实际意义?
- 可以更方便的链接到主机
- 在获取到玩主机权限的时候,后门可以充当命令控制台的角色
WEB
WEB的组成架构模型?
- 网站源码:分脚本类型,分应用方向
- 操作系统:windowslinux
- 中间件(搭建平台):apacheiis tomcatnginx等.
- 数据库:access mysqlmssqloracle sybase db2 postsql等
为什么要从 WEB层面为主为首?
- web使用的比较广
- web网站了漏洞相对较多.
- web作为跳板深入到其他资源相对容易
WEB相关安全漏洞
- WEB 源码类对应漏洞:SQL 注入,上传,XSS,代码执行,变量覆盖,逻辑漏洞,反序列化等
- WEB 中间件对应漏洞:未授权访问,变量覆盖…
- WEB 数据库对应漏洞:弱口令,权限提升…
- WEB 系统层对应漏洞:提权,远程代码执行
- 其他第三方对应漏洞
- APP或PC应用结合类
数据包扩展
HTTPS&HTTP
链接:HTTP&HTTPS详解
Request请求数据包数据格式
关键字 | 值 |
---|---|
HOST | 主机或域名地址Accept:指浏览器或其他客户可以接爱的 MIME 文件格式。Servlet 可以根据它判断并返回适当的文件格式 |
User-Agent | 是客户浏览器名称 |
Host | 对应网址URL 中的 Web 名称和端口号。Accept-Langeuage:指出浏览器可以接受的语言种类,如 en 或en-us,指英语。connection:用来告诉服务器是否可以维持固定的 HTTP 连接。http 是无连接的,HTTP/11 使用 Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个 HTML 文件和相关的图形文件),不需要每次都建立连接 |
Cookie | 浏览器用这个属性向服务器发送 Cookie。Cokie 是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。 |
Referer | 表明产生请求的网页URL。如比从网页/cconcept/index.jsp中点击一个链接/icwork/search,在向服务器发送的GET/cwork/search 中的请求中,Referer 是http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪 Web 请求是从什么网站来的。Content-Type: 用来表名 request 的内容类型。可以用 HttpServletRequest 的 getContentType()方法取得.Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是 ISO8859-1Accept-Encoding: 指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到 web 响应之后先解码,然后再检查文件格式。 |
搭建安全扩展
域名扫描只能扫描出来域名文件,而域名文件只是占服务器资源的一小部分:IP扫描可以直接扫描出来服务器的根目录,得到的信息更多
域名IP目录解析安全问题;
IP地址可以访问发现更多内容,而域名访问只能发现一个文件夹下的所有文件。IP地址访问可以发现程序源码备份文件和敏感信息。访问网站的时候,可以访问域名,也可以访问IP地址。访问域名一般会指向某个目录,而访问IP地址一般会指向根目录;
网站搭建环境
ASPPHPASPXJSPPYJAVAWEB 等环境
- WEB源码中敏感文件
后台路径,数据库配置文件,备份文件等
基于中间件的常见漏洞
-
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后门文件部署