1、web安全基础知识点1

域名

1. 什么是域名

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。 比如www.baidu.com,这就是一个域名,简单来说就是ip不好记,所以有了域名来方便记忆。可以联想到地址和经纬度的关系(上海 :经度 121.48 纬度 31.22)

2. 域名在哪里注册

域名注册是Internet中用于解决地址对应问题的一种方法。根据中国互联网络域名管理办法,域名注册服务机构及域名注册管理机构需对申请人提出的域名是否违反了第三方的权利和申请人的真实身份进行核验。每一个相同顶级域名中的二级域名注册都是独一无二的,不可重复的,但不同顶级域名中的二级域名可以是相同的,例如baidu这个二级域名曾可以在.com中注册,也可以在.cn中注册,也可以在.xyz中及其他多种顶级域名中注册,且每个域名都起到同样的作用。因此,在网络上域名是一种相对有限的资源,它的价值随着注册企业和个人用户的增多而逐步为人们所重视

3. 什么是二级域名多级域名

例如www.dns0755.net是dns0755.net的子域名,而dns0755.net又是net的子域名。国际顶级域名的子域名叫做二级域名。  
如A.com是一级域名,A.B.com则是二级域名。一级域名较二级域名级别更高,而二级域名则是依附于一级域名下的附属分区域名,即二级域名是一级域名的细分层级。   
通过网址上【.】数量来判断域名层级,有多少【.】就为几级域名,如A.com是一级域名,A.B.com则是二级域名。   
如:baidu.com 是百度的顶级域名,zhidao.baidu.com 是二级域名,zhidao.zhidao.baidu.com 是三(多)级域名,*.baidu.com 是泛域名。

4. 域名发现对于安全测试的意义?

进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,有可能测试子域名网站时会有意向不到的效果,然后可以由此横向到主网站。

DNS

1. 什么是DNS?

DNS是计算机域名系统(Domain Name System 或 Domain Name Service)的缩写,它是由解析器和域名服务器组成的,作用是把域名转换成为网络可以识别的ip地址。比如我们上网时输入的 www.163.com 会自动转换成为202.108.42.72。

2. 本地HOSTS与DNS的关系?

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。DNS就是进行域名解析的服务器。当访问一个网站时系统将从DNS缓存中读取该域名所对应的IP地址,当查找不到时就会到系统中查找hosts文件,如果还没有那么才会向DNS服务器请求一个DNS查询。

3. CDN是什么?与DNS的关系?

cdn全称是内容分发网络。其目的是让用户能够更快速的得到请求的数据。简单来讲,cdn就是用来加速的,他能让用户就近访问数据,这样就更更快的获取到需要的数据。举个例子,现在服务器在北京,深圳的用户想要获取服务器上的数据就需要跨越一个很远的距离,这显然就比北京的用户访问北京的服务器速度要慢。但是现在我们在深圳建立一个cdn服务器,上面缓存住一些数据,深圳用户访问时先访问这个cdn服务器,如果服务器上有用户请求的数据就可以直接返回,这样速度就大大的提升了。
cdn实际上是一个就近访问,那么现在有一个问题是,我们怎么知道用户的所在位置从而给他分配最佳的cdn节点呢。这就需要dns服务来进行定位了。当我们通过使用dns服务的时候,可以根据他使用的LDNS服务器来进行一个定位,例如我们的调度服务器看到他是来自深圳电信的LDNS服务器,那么我们就认为该用户来自深圳电信,然后调度服务器可以让该用户去访问深圳电信的CDN服务器,这样就让用户访问到了最优的cdn节点。通过dns服务我们可以很快的定位到用户的位置,然后给用户分配最佳cdn节点

4. 当用户请求一个文件时,cdn的工作过程

DNS请求当地的local DNS
当地local DNS递归的查询服务器的gslb
服务器根据local DNS分配最佳节点,返回IP
用户获得最佳接入IP,访问最佳节点
如果该节点没有用户想要获取的内容,则通过内部路由访问上一节点,直到找到文件或到达源站为止
cdn节点缓存该数据,下次请求该文件时可以直接返回

5. 常见的DNS安全攻击有哪些?

1.) 缓存投毒(DNS污染)
通常也称为域名系统投毒或DNS缓存投毒。它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。当网络用户在带有该虚假地址的页面中进行搜寻,以访问某链接时,网页浏览器由于受到该虚假条目的影响而打开了不同的网页链接。在这种情况下,蠕虫、木马、浏览器劫持等恶意软件就可能会被下载到本地用户的电脑上
2.) DNS劫持
DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。这类攻击一般通过恶意软件来更改终端用户TCP/IP设置,将用户指向恶意DNS服务器,该DNS服务器会对域名进行解析,并最终指向钓鱼网站等被攻击者操控的服务器
3.) 域名劫持
域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。一旦您的域名被劫持,用户被引到假冒的网站进而无法正常浏览网页,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据
4.) DNS DDOS攻击
针对DNS的DDoS攻击通过控制大批僵尸网络利用真实DNS协议栈发起大量域名查询请求,利用工具软件伪造源IP发送海量DNS查询,发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到较少的攻击流量消耗大量服务器资源的目的
5.) 反射式DNS放大攻击
DNS 反射放大攻击主要是利用 DNS 回复包比请求包大的特点,放大流量,伪造请求包的源 IP 地址为受害者 IP,将应答包的流量引入受害的服务器。

脚本语言

1. 常见的脚本语言类型有哪些?

脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
Scala、JavaScript,VBScript,ActionScript,MAXScript,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX,Lua,AutoIt等

2. 不同脚本类型与安全漏洞的关系?

不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)

后门

1. 什么是后门?有哪些后门?

后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。类别:网页、线程插入、扩展、C/S后门

2. 后门在安全测试中的实际意义?

例如后门藏在网页上、软件内,悄无声息的进行攻击者想要的操作

3. 关于后门需要了解哪些?(玩法,免杀)

深知攻击型再反侦察,防止被相关软件识别到

WEB

1. web的组成架构模型

网站源码:分脚本类型、分应用方向
操作系统:windows、linux
中间件(搭建平台):apache、iis、tomcat、nginx等
数据库:access、mysql、mssql、oracle、sybase、db2、postsql等

2. 架构漏洞安全测试简要介绍?

今后的攻击漏洞和攻击方法都围绕这4方面

3. 为什么要从web界面为主为首?

WEB使用率广,源码多。从WEB提权,拿到服务器及其内网

WEB相关安全漏洞

1. web源码对应漏洞

SQL注入
文件上传
XSS
代码执行
变量覆盖
逻辑漏洞
反序列化等等

2. web中间件对应漏洞

未授权访问

3. web数据库对应漏洞

内核漏洞

4. web系统层对应漏洞

提权漏洞,安全代码执行

5. 其他第三方对应漏洞

电脑第三方软件

6. APP或PC应用结合类

移动端,PC端,网页端

数据包拓展

网站解析对应

1、 涉及到的攻击层面?
源码,搭建平台,系统,网络层等
2、 涉及到的安全问题?
目录,敏感文件,弱口令,IP以及域名

HTTP/S数据包

#Request 请求数据包
#Proxy 代理服务器
#Response 返回数据包

关于HTTP和HTTPS

  1. HTTP和HTTPS的区别

    • https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份 认证的网络协议,比http协议安全。

  2. HTTP和HTTPS的简要通信过程
    (1)HTTP通信过程
    建立链接——>发送请求数据包——>返回响应数据包——>关闭连接
    ○ 浏览器建立与web服务器直接的连接
    ○ 浏览器将请求数据打包(生成请求数据包)并发送到web服务器
    ○ web服务器将处理结果打包(生成响应数据包)并发送给浏览器
    ○ web服务器关闭连接

(2)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. 请求头:一些键值对,浏览器与web服务器之间都可以发送,特殊的某种含义
    HOST:主机或域名地址
    Accept:指浏览器或其他客户可以接受的MIME文件格式,servlet可以根据它判断并返回适当的文件格式
    User-Agent:是客户浏览器名称
    Host:对应网址URL中的web名称和端口号
    Accept-Language:指出浏览器可以接受的语言种类,如en或者en-us,指英语
    connection:用来告诉服务器是否可以维持固定的HTTP连接、http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接
    Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,他可以记载服务器相关的用户信息,也可以用来实现会话功能
    Referer:表明产生请求的网页URL,这个属性可以用来跟踪web请求是从什么网站来的。如比从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,再向服务器发送的GET/icwork/search中的请求中,Referer是http://hostname:8080/icconcept/index.jsp
    Content-Type :用来表明request的内容类型,可以用HttpServeletRequest的getContentType()方法取得。
    Accept-Charset:指出浏览器可以接受的字符编码
    Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件传递速度。浏览器在接收到web响应之后再解码,然后再检查文件格式
  3. 空行:请求头与请求体之间用一个空行分开
    最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标
  4. 请求体:要发送的数据(一般post提交时候会用)
    使用POST传送,最常使用的是Content-Type和Content-Length头标
  5. request请求数据包
    GET / HTTP/1.1
    Host: www.baidu.com
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    Cookie: BAIDUID=DF85C12211175FD67D599BC8A06EB4B2:FG=1; BIDUPSID=DF85C12211175FD6D8AC7AF7356EF11F; PSTM=1571798152; BD_UPN=13314752; COOKIE_SESSION=251208_1_7_5_8_6_0_0_5_5_0_0_251207_0_1_0_1580795676_1580539587_1580795675%7C9%235096250_55_1580539585%7C9; BDRCVFR[Fc9oatPmwxn]=mk3SLVN4HKm; delPer=0; BD_CK_SAM=1; PSINO=1; H_PS_PSSID=1465_21124_26350_30496; H_PS_645EC=d0f32cF5kQJ3ZcmKhkebQhVlmvrVbJe34vcNJntPlQBU7X%2BEF0T1MJCfpt5UZln7q4OU; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BD_HOME=0
    Upgrade-Insecure-Requests: 1
    Cache-Control: max-age=0

Response返回数据包格式

  1. Response返回数据包数据格式
    一个响应由四个部分组成:状态行、响应头标、空行、响应数据
  2. 状态行:协议版本,数字形式的状态代码和状态描述,各元素之间用空格进行分割
    HTTP响应码
    1XX:信息,请求收到,继续处理
    2XX:成功,行为被成功的接收、理解和采纳
    3XX:重定向,为了完成请求,必须进一步执行的动作
    4XX:客户端错误
    5XX:服务器错误
    200:存在文件
    403:存在文件夹
    3XX:均可能存在
    404:不存在文件及文件夹
    500:均可能存在
  3. 响应头标:包含服务器类型、日期、长度、内容类型等
    像请求头标一样,它们指出服务器的功能,标识出响应数据的细节
  4. 空行:响应头与响应体之间用空行隔开
    最后一个响应头标之后是一个空行,发送回车符和退行,表面服务器一下不再有头标。
  5. 响应数据:浏览器会将实体内容中额数据取出来,生成相应的页面
    HTML文档和图像等,也就是HTML本身
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值