0x01 基础名词
一、域名
1.什么是域名
域名就是网站地址的名称,例如www.baidu.com
2.域名在哪里注册
国内:万维网,阿里云
国外: Godaddy
3.什么是二级域名,多级域名,顶级域名
顶级域名 baidu.com yuque.com 只有一个.域名
二级域名 news.baidu.com tieba.baidu.com 加在顶级域名前的域名
多级域名 test.news.baidu.com 加在在二级域名前的域名
4.域名发现对于安全测试的意义
同一网站的顶级域名和多级域名之间有联系,给安全测试多一种可能性
二、DNS
1.什么是DNS
DNS是域名系统服务协议,主要用于域名和IP地址的相互切换
例如在cmd命令控制台中可以通过 ping www.baidu.com 将域名解析成IP地址
2.本地host和DNS的关系
本地host路径:“windows”→“System32”→“drivers”→“etc”。
DNS在解析域名时会优先访问host文件寻找是否有域名对应的IP地址,如果没有
再去互联网上去解析
3.CDN是什么,和DNS有什么关系
CDN是 内容分发网络,缓存节点技术,让用户在不同的地方都能快速访问网站
更改DNS的解析服务器地址,会访问到不同地区的CDN,CDN会访问最近的节点来保证访问速度
三、常见的DNS攻击
- 缓存投毒:它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。
- DNS劫持:是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。(针对面较广)
- 域名劫持:域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。(针对面窄一点)
- DNS DDOS攻击:通过控制大批僵尸网络利用真实DNS协议栈发起大量域名查询请求,利用工具软件伪造源IP发送海量DNS查询,发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。
四、脚本语言
1.常见的脚本语言有哪些
asp php aspx jsp javaweb pl py cgj等
2.不同的脚本类型于安全漏洞的关系
不同脚本语言规范不一样,规范严谨的相对来说安全漏洞出现的比较少
规范不严谨的脚本语言相对来说出现安全漏洞的几率更大
3.漏洞挖掘代码审计于脚本类型的关系
需要能看懂脚本语言
五、后门
1.什么是后门,有哪些后门
攻击者在得到权限后,留下后门文件方便下次进入;
服务器后门,网站后门等等
2.后门在安全测试的意义
可以更方便的链接到主机
在获取到主机权限的时候,后门可以充当命令控制台的角色
六、WEB
1web的组成架构模型
网站源码:分脚本类型,应用方向(论坛,博客,社交)
操作系统:windows ,Linux
中间件(搭建平台):apache iis tomcat
数据库:access mysql mssql oracle sybase db2 postsql 等
2架构漏洞安全测试简要介绍
3为什么要从web层面为主首
web使用的比较广
web网站了漏洞相对较多
web 作为跳板深入到其他资源相对容易
4WEB相关安全漏洞
WEB 源码类对应漏洞:SQL 注入,上传,XSS,代码执行,变量覆盖,逻辑漏洞,反序列化等
WEB 中间件对应漏洞:未授权访问,变量覆盖...
WEB 数据库对应漏洞:弱口令,权限提升...
WEB 系统层对应漏洞:提权,远程代码执行
0x02 数据包拓展
一、Http与Https
浏览器Request request 服务器
浏览器response response 服务器
Request 数据请求
proxy 代理
response 数据返回
1Http与Https
3Http&Https的传输过程
http传输过程:建立连接>发送请求数据包>返回响应数据包>关闭连接
https传输过程:
二、Request 请求数据包数据格式
1.请求行
- 请求行由三个标记组成:请求方法、请求 URL 和 HTTP 版本,它们用空格分享。
- 例如:GET /index.html HTTP/1.1
HTTP 规划定义了8种可能的请求方法:
GET:检索URL中标识资源的一个简单请求。
HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档。
POST:服务器接收被写入客户端输出流中的数据的请求。
PUT:服务器保存请求数据作为指定URL新内容的请求。
DELETE:服务器删除URL中命令的资源的请求。
OPTIONS:关于服务器支持的请求方法信息的请求。
TRACE:web服务器反馈HTTP请求和其头标的请求。
CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理。
2.请求头
由关键字/值对组成,每行一对,关键字和值用冒号分享。请求头标通知服务器腾于客户端的功能和标识。
HOST: 主机或域名地址
Accept:指浏览器或其他客户可以接受的 MIME 文件格式。Servlet 可以根据它判断并返回适当的文件格
式。
User-Agent:是客户浏览器名称
Host:对应网址 URL 中的 Web 名称和端口号。
Accept-Langeuage:指出浏览器可以接受的语言种类,如 en 或 en-us,指英语。
connection:用来告诉服务器是否可以维持固定的 HTTP 连接。http 是无连接的,HTTP/1.1 使用 Keep-Alive
为默认值,这样,当浏览器需要多个文件时(比如一个 HTML 文件和相关的图形文件),不需要每次都建立
连接
Cookie:浏览器用这个属性向服务器发送 Cookie。Cookie 是在浏览器中寄存的小型数据体,它可以记载
和服务器相关的用户信息,也可以用来实现会话功能。
Referer : 表 明 产 生 请 求 的 网 页 URL 。 如 比 从 网 页 /icconcept/index.jsp 中 点 击 一 个 链 接 到 网 页/icwork/search , 在 向 服 务 器 发 送 的 GET/icwork/search 中 的 请 求 中 , Referer 是http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪 Web 请求是从什么网站来的。
Content-Type:用来表名 request 的内容类型。可以用 HttpServletRequest 的 getContentType()方法取得。
Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是 ISO-8859-1.
Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加
速文件传递速度。浏览器在接收到 Web 响应之后先解码,然后再检查文件格式。
3.空行
最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标。
4.请求体
使用 POST 传送,最常使用的是 Content-Type 和 Content-Length 头标。
三、Response 返回数据包数据格式
1.状态行
状态行:协议版本、数字形式的状态代码和状态描述,个元素之间以空格分隔
HTTP 响应码
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误
5xx:服务器错
2.响应头标
包含服务器类型、日期、长度、内容类型等
3.空行
响应头与响应体之间用空行隔开
4.响应数据
浏览器会将实体内容中的数据取出来,生成相应的页面
0x03 搭建安全拓展
1. 搭建安全拓展 IIS
常见搭建平台脚本启用
2.域名ip目录解析安全问题
3.用域名访问网站的目录
4. 用ip地址访问网站是在域名目录的上一级(可能扫描到备份文件,敏感信息)
5.常见文件后缀解析对应安全
6.常见安全测试中的安全防护
7.Web后门与用户及文件权限
0x04 WEB源码拓展
1.WEB源码目录结构
后台目录
模板目录
数据库目录
数据库配置文件目录
2. WEB源码脚本类型
asp,sapx,php,javaweb,jsp,python
不同脚本对应常用的数据库
asp,sapx :sqlserver
php:
javaweb:mysql
jsp
python
3.WEB源码应用分类
不同的应用类型,在进行安全测试时的侧重点不同
门户网站
电商网站
论坛网站
博客网站
第三方
4.WEB源码的其他说明
cms:开源程序,能在网上直接下载到源码
**判断是否cms:在网站中寻找cms标识 **
源码的获取途径:搜索引擎(a5,站长之家,菜鸟源码),
0x05 系统及数据库等
1.操作系统
Winodws,Linux
Windows不区分大小写,Linux区分大小写;可以由此用来判断网站使用的系统
2.数据库
Sqlserver,mysql,oracel
3.第三方
4.补充
版权归原作者 白帽小衫 所有, 如有侵权,请联系我们删除。