188、ARP 协议工作原理
地址解析协议,即 ARP (Address Resolution Protocol) ,是根据 IP 地址获取物理
地址的一个 TCP/IP 协议。
1)发送 ARP 请求的以太网数据 广播 到以太网上的每个主机,ARP 请求中包含了目的
主机的 IP 地址
2)目的主机收到了该 ARP 请求之后,会发送一个 ARP 应答,里面包含了目的主机的
MAC 地址。
189、GET 和 POST 的区别
1)GET 是获取数据;POST 是修改数据
2)GET 把请求的数据放在 url 上,以?分割 URL 和传输数据,参数之间以&相连所以
GET 不太安全;而 POST 把数据放在 HTTP 的包体内 (request body)
3)GET 提交的数据最大是 2k (限制实际上取决于浏览器);POST 理论上没有限制。
4)GET 产生一个 TCP 数据包,浏览器会把 http header 和 data 一并发送出去服务器
响应 200(返回数据); POST 产生两个 TCP 数据包,浏览器先发送 header.服务器响应 100
continue,浏览器再发送 data,服务器响应 200 ok(返回数据)
5)GET 请求会被浏览器主动缓存;而 POST 不会,除非手动设置
190、HTTPS 和 HTTP 的区别
1)HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私
信息非常不安全,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络
协议,要比 http 协议安全。
2) https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用
3) http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80 后
者是 443。
191、http 长连接和短连接的区别
第 69 页 共 152 页 在 HTTP/1.0 中默认使用短连接。也就是说,客户端和服务器每进行一次 HTTP 操作,
就建立一次连接,任务结束就中断连接。而从 HTTP/1.1 起,默认使用长连接,用以保持连
接特性
192、什么是 SSL,SSL 是怎么工作保证安全的
SSL 代表安全套接字层。它是一种用于加密和验证应用程序 (如浏览器)和 Web 服务器
之间发送的数据的协议。加密 Https 的加密机制是一种共享密钥加密和公开密钥加密并用
的混合加密机制。
SSL/TLS 协议作用: 认证用户和服务,加密数据,维护数据的完整性的应用层协议加密
和解密需要两个不同的密钥,故被称为非对称加密;加密和解密都使用同一个密钥的对称加
密。
优点在于加密、解密效率通常比较高 HTTPS 是基于非对称加密的,公钥是公开的。
- 客户端向服务器端发起 SSL 连接请求
- 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥 3) 客户端用公钥对
双方通信的对称秘钥进行加密,并发送给服务器端 4) 服务器利用自己唯一的私钥对客户端
发来的对称秘钥进行解密 5) 进行数据传输,服务器和客户端双方用公有的相同的对称秘钥
对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法
对其进行加密,解密和篡改。
因为数字签名、摘要是证书防伪非常关键的武器。"摘要"就是对传输的内容,通过 hash
算法计算出一段固定长度的串。然后,在通过 CA 的私钥对这段摘要进行加密,加密后得到
的结果就是"数字签名"。
SSL/TLS 协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,
然后用公钥加密信息,服务器收到密文后,用自己的私钥解密
193、条件竞争漏洞原理与举例
条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进
行的,因此如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发
生
举个例子,很多 web 程序都会有上传文件的功能,头像和图像等,服务器肯定会检查
文件是否满足条件,不满足的要被删除。那么问题就在于,如果我们采用大量的并发请求,
就传递一个生成恶意 webshell 的图像,访问它就可以生成 webshell
在上传完成和安全检查完成并删除它的间隙,攻击者通过不断地发起访问请求的方法访
问了该文件,该文件就会被执行,并且在服务器上生成一个恶意 shell 的文件
至此该文件的任务就已全部完成,至于后面发现它是一个不安全的文件并把它删除的问
题都已经不重要了,因为攻击者已经成功地在服务器中植入了一个 shell 文件,后续的一
切就都不是问题了
194、如何验证存在 xss 漏洞
XSS 漏洞的原理是: 插入语句、改变结果、操纵数据
第 70 页 共 152 页 第 71 页 共 152 页
本质是: 用户输入的 html 语句直接输出,包括了使用不正确的方法去验证
挖掘 XSS 的第一步是找输入,也就是用户可以操控代码的位置;第二步是找输出也就是
找到第一步用户输入的代码在网页的何处地方进行了输出;第三步: 构造 payload,通
过查看源代码,构建出 payload。如代码输出位置在 <td>test</td> ,即可构 建出
payloadtest</td><svg/οnlοad=console.log(1)><td>最后输出结果为:
<td>test</td><svg/οnlοad=console.log(1)><td></td>
195、如何验证存在任意文件下载的漏洞
一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下
载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏
洞
利用条件: 存在读文件的函数;读取文件的路径用户可控且未校验或校验不严;输出了
文件内容。
任意文件下载和任意文件读取有着相似的地方: 就是都需要路径,例如
index.php?f=file:///etc/passwd,index.php?f=../index.php
196、Web 短信重置密码可能存在哪几种绕过方式?
短信验证码可爆破
2)
短信验证码显示在获取验证码请求的回显中
3)
注册手机号及短信验证码未进行匹配性验证
4)
用户名、手机号码、短信验证码三者没有进行匹配性验证
5)短信验证码的验证在本地客户端进行验证
6)重置步骤未进行校验
7)重置请求未验证身份
8)登录成功修改密码功能平行越权
9) 未校验身份信息的唯一标识 cookie 信息
197、token 和 referer 做横向对比,谁安全等级高?
token 安全等级更高,因为并不是任何服务器都可以取得 referer,如果从 HTTPS 跳
到 HTTP,也不会发送 referer。并且 FLASH 一些版本中可以自定义 referer。但是 token
的话,要保证其足够随机且不可泄露