首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >渗透测试XSS漏洞原理与验证(4)——HTTP协议安全

渗透测试XSS漏洞原理与验证(4)——HTTP协议安全

原创
作者头像
zhouzhou的奇妙编程
发布2024-11-05 21:57:41
发布2024-11-05 21:57:41
1530
举报
文章被收录于专栏:渗透测试专栏渗透测试专栏

Weak Session lDs

当用户登录后,在服务器就会创建一个会话(Session),叫做会话控制,再访问页面的时候就不用登录,只需要携带Session去访问。

SessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该SessionlD,则攻击者将可以轻易获取访问权限,无需登录直接进入特定用户界面,进而执行其他操作。

用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪一个Session,浏览器需要把当前用户持有的SessionID告知服务器。用户拿到SessionID就会加密后保存到 cookies 上,之后只要cookies随着http请求发送服务器服务器就知道你是谁了。SessionID一旦在生命周期内被窃取,就等同于账户失窃。

Session利用的实质:由于SessionlD是用户登录之后持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特定用户界面,进而查找其他漏洞如XSS、文件上传等等。

Session劫持:就是一种通过窃取用户SessionlD,使用该SessionlD登录进目标账户的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。如果SessionlD是保存在Cookie中的,则这种攻击可以称为Cookie劫持。SessionlD还可以保存在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。

Low

Low等级未设置过滤,就是单纯使用了自增数字作为cookie的值,dvwaSession从1开始递增。

解密方法:预测下一次的数字。

Medium

Medium使用了time()函数返回时间戳作为cookie的值。通过设置时间戳可以诱骗受害者在某个时间点进行点击。

解密方法:生成当前时间的时间戳。

High

High等级是用了自增的数字再md5加密。

解密方法:白盒审计源码破解。(比如开源cms)

lmpossible

使用了随机数+时间戳+固定字符串“Impossible”,再进行sha1运算的组合,是稳定安全的SessionlD生成方案。

HTTP协议存在的安全问题

  • 1、通讯使用明文,未加密,并且TCP/IP协议是可能会被窃听的网络,所以通讯内容可能会被窃听
  • 2、没有验证通讯方的身份,可能会被冒充
  • 3、没有办法验证报文的完整性,可能会被篡改

HTTPS协议

上个世纪90年代中期,网景公司(NetScape)为了解决HTTP协议明文传送的安全性问题,设计了SSL(Secure Sockets Layer 安全套接层)协议。

SSL协议的思想是基于传输控制层协议(例如TCP)建立一个安全的网络连接层应用层和传输层之间多了一个安全套接层,

1999年,互联网标准化组织ISOC接替NetScape公司,发布了SSL升级版的TLS1.0版。

目前使用最广泛的是TLS 1.2版本,主流浏览器都已经实现了TLS 1.2的支持。TLS1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3.

至2020年3月,微软、苹果、谷歌等多家企业已经弃用TLS1.0和TLS1.1。

SSL/TLS协议

SSL/TLS协议是为了解决HTTP协议的风险而设计的,希望达到:

  • 所有的信息都是加密传输,第三方无法窃听
  • 配备身份证书,防止被冒充
  • 具有校验机制,一旦被篡改,通信双方立马发现

HTTPS协议

超文本传输安全协议(HyperText Transfer ProtocolSecure,缩写HTTPS;常称为HTTP overTLS、HTTP over SSL或HTTP Secure),是一种通过计算机网络进行安全通信的传输协议,简单来说是HTTP的安全版。

HTTP直接和TCP通信,但是HTTPS是HTTP先和SSL协议通信,然后SSL协议再和TCP通信。

HTTP和HTTPS的区别

1、HTTPS协议需要到CA申请证书,一般免费证书很少,需要年费。

2、HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的SSL加密传输协议。

3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

SSL协议组成

1、记录协议(Record Protocol)

2、握手协议(Handshake Protocol)

3、警告协议(Alert Protocol)

4、密码规范改变协议(Change Cipher Protocol)

SSL协议主要分为两层,其中底层是SSL记录协议层,高层是SSL握手协议层。最重要的是记录协议和握手协议。

SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。记录封装各种高层协议,具体实施压缩、解压缩、加密、解密、计算和校验MAC等与安全有关的操作。

SSL握手协议层的这些协议用于管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。

SSL握手协议的作用是协调客户和服务器的状态,使双方能够达到状态的同步。

HTTPS通信过程

HTTPS缺点

  • 对数据进行加解密决定了HTTPS比HTTP慢,相同网络环境下,使用HTTPS协议会使页面的加载时间延长近50%,增加10%-20%的耗电
  • HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用
  • SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下中间人攻击一样可行
  • SSL证书需要购买,功能越强大的证书费用越高,小网站可选择入门级免费证书
  • SSL证书通常需要绑定IP,为服务器增加固定IP会增加一定费用
  • HTTPS连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本
  • HTTPS连接缓存不如HTTP高效,流量成本太高

本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!

本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Weak Session lDs
    • Low
    • Medium
    • High
    • lmpossible
  • HTTP协议存在的安全问题
  • HTTPS协议
    • SSL/TLS协议
    • HTTPS协议
    • HTTP和HTTPS的区别
    • SSL协议组成
    • HTTPS通信过程
    • HTTPS缺点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档