利用内容安全策略探测网站登陆状态 (利用内容安全的成语)

教程大全 2025-07-13 11:27:08 浏览

0x01 内容安全策略(Content Security Policy,简称CSP)简介

[script ]块内容,内联事件,内联样式 ,以及禁止执行eval() , newFunction() , setTimeout([string], …) 和setInterval([string], …) 。

CSP更详尽的介绍可以在drops看到:

0x02 大环境介绍与原理

利用内容安全的成语

我们再来想想像支付宝这种集成度很高的网站服务,当我们在未登录的情况下访问alipay的某个子域名(如test.alipay.com),很可能是会302跳转到一个用户登陆专用的域名(如login.alipay.com)下要求用户登录。而在已登录的情况下是不会跳转的。

这就造成了一个登录/未登录的一个差别,主要差别如下:

HTTP状态码(302和200)

最终访问的域名(test.alipay.com和login.alipay.com)

因为浏览器SOP(同源策略)的限制,正常情况下我们是无法获取到alipay域名下HTTP状态码的。

但结合CSP安全策略,我们却可以简单获得第2个,也就是最终访问域名。为什么?

这就是原理,很赞的一个思路,再次崇拜一次@/fd。#p#

0x03 以支付宝为例编写探测代码

所以,根据上面的思路,我们第一步就是找到一个这样的页面:登录、未登录用户访问时到达的“域名”不相同。这里的“域名”包括protocol和hostname,也就是说和是不同的域名。

像支付宝这种网站有很多这样的页面,因为支付宝的很多服务是登录用户才能查看的,而登录入口又只有那么一个。

比如这个URL:,当未登录用户访问的时候会跳转到,已登录用户访问时不会跳转。

这时候我们将CSP的img-src限制为,再将作为img的src,这个时候就会出现一个有趣的现象:未登录的用户访问时,会触发CSP规则。

因为未登录的用户访问时实际img加载的src是,不符合CSP限制的img-src,自然就触发规则了。 这时候我们在设置CSP的report-uri为report.PHP,不符合规则的请求会被记录下作为日志发送到report.php里:

不过浏览器在发送这个report包的时候是不带cookie的,所以 服务器 那边并不能直接判断是哪个用户发送的report包,所以我们在report的GET参数里带上用户的session id。

示例代码如下:

report.php用来记录:

当接收到php://input的时候说明CSP发送报告了,说明请求违反的CSP规则了,也就意味着用户没有登录,所以将session中的nologin设置为1。 然后在index.php里用一个ajax来向alipay.php请求,实际上就是获得$_SESSION[nologin]的值:

如上,获取完后将session清除一下,以免影响下一次的判断。

获得值如果为1的话,说明没有登录,如果为0说明已登录,就可以显示出来或做任何其他操作了。

来个演示:

登录支付宝以后访问,显示“已登录”

换个浏览器,直接访问则显示“未登录”:

0x04 由http/https混用造成的问题(百度为例)

同样的问题,不仅仅是支付宝存在,只要有“统一登录入口”的网站都可能出现这个问题,因为统一登录入口通常是一个单独的域名。

还有一种情况,是http和https混用造成的。有些网站的登录页面是https加密传输的,但登陆以后实际的操作页面是走http。

这之间一样存在一个跳转的问题,当我们访问一个登陆后才能看到的页面如,未登录的用户就会跳转到登录页面,如。

比如,这是百度的安全中心。当已登录用户访问的时候会跳转到“安全中心”首页注意,此处是http):

而未登录用户访问则会跳转到这时候是https):

虽然两个域名都是passport.baidu.com,但因为protocol不同,混用的http和https就能够影响CSP的拦截情况。

测试你是否登录百度:

0x05 影响及防范方法

严格来论,只是判断用户是否登录,这个问题并不算一个漏洞。当时@/fd将问题提交到推特之后推特的回应也是不算漏洞,但确实如果与其他一些漏洞结合使用,会让某些漏洞的成功率提高一大截。所以我们可以将之归为一个“奇技淫巧”。

这个问题更容易出现在一些大型网站、企业网络之中,往往这些网站的统一性和重用性都做的很好,所以往往登录入口只有一个(现在流行一个user center的概念),所以难免会出现一些跳转的问题。有这些跳转,就是探测用户登录的基础。

这个方法还有一个限制,就是用户使用的浏览器需要是现代浏览器,需要支持CSP安全策略。如果你要探测的用户还在用IE6~IE10,那么是肯定不行的。 如何解决这个问题?如果你真的觉得这是个安全问题的话,那么尽量避免跳转,或者使用Javascript进行页面的跳转。


什么是efs文件?

EFSEFS(Encrypting File System,加密文件系统)是windows 2000/XP所特有的一个实用功能,对于NTFS卷上的文件和数据,都可以直接加密保存,在很大程度上提高了数据的安全性。 (1)什么是EFS加密EFS加密是基于公钥策略的。 在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件加密钥匙),然后将利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。 随后系统利用你的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。 而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。 在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。 如果你登录到了域环境中,密钥的生成依赖于域控制器,否则依赖于本地机器。 EFS加密系统对用户是透明的。 这也就是说,如果你加密了一些数据,那么你对这些数据的访问将是完全允许的,并不会受到任何限制。 而其他非授权用户试图访问加密过的数据时,就会收到“访问拒绝”的错误提示。 EFS加密的用户验证过程是在登录Windows时进行的,只要登录到Windows,就可以打开任何一个被授权的加密文件。 (2)EFS加密选中NTFS分区中的一个文件,点击鼠标右键,选择“属性”命令,在出现的对话框中点击“常规”选项卡,然后点击“高级”按钮,在出现的对话框中选中“加密内容以便保护数据”选项,点击“确定”即可。 此时你可以发现,加密文件名的颜色变成了绿色,当其他用户登录系统后打开该文件时,就会出现“拒绝访问”的提示,这表示EFS加密成功。 而如果想取消该文件的加密,只需将“加密内容以便保护数据”选项去除即可(3)EFS解密如果其他人想共享经过EFS加密的文件或文件夹,又该怎么办呢?由于重装系统后,SID(安全标示符)的改变会使原来由EFS加密的文件无法打开,所以为了保证别人能共享EFS加密文件或者重装系统后可以打开EFS加密文件,必须要进行备份证书。 点击“开始→运行”菜单项,在出现的对话框中输入“”,回车后,在出现的“证书”对话框中依次双击展开“证书-当前用户→个人→证书”选项,在右侧栏目里会出现以你的用户名为名称的证书。 选中该证书,点击鼠标右键,选择“所有任务→导出”命令,打开“证书导出向导”对话框。 在向导进行过程中,当出现“是否要将私钥跟证书一起导出”提示时,要选择“是,导出私钥”选项,接着会出现向导提示要求密码的对话框。 为了安全起见,可以设置证书的安全密码。 当选择好保存的文件名及文件路径后,点击“完成”按钮即可顺利将证书导出,此时会发现在保存路径上出现一个以PFX为扩展名的文件。 当其他用户或重装系统后欲使用该加密文件时,只需记住证书及密码,然后在该证书上点击右键,选择“安装证书”命令,即可进入“证书导入向导”对话框。 按默认状态点击“下一步”按钮,输入正确的密码后,即可完成证书的导入,这样就可顺利打开所加密的文件。

SD-WAN网络关键特征是什么?

无论是何种SD-WAN,其关键的特征如下:

1、集中的基于应用的WAN策略管控和自动化配置。

2、多出口链路的管理,包括MPLS专线、普通PON/DSL Internet连接、LTE无线网络等,在充分利用多种链路带宽的情况下,最大化保证业务质量;通过实时测量多个出口的链路时延、丢包等质量,将不同质量、带宽要求的应用调度到最佳出口上,同时快速进行故障的切换。

3、应用识别和监控分析,并且将应用识别的结果和多出口链路优化结合起来,不同的应用定义不同的QoS等级、SLA保证策略,动态选择最佳的出口链路。

4、转发面站点之间的连接采用Overlay技术,以消除对Underlay网络的依赖。 SD-WAN控制器控制Overlay的端点来实现策略配置的自动化,而无需介入到复杂的Underlay网络配置中去。

5、企业CPE设备的即插即用。 通过预置证书和引导过程,上电自动接入网络,终端认证后接入SD-WAN控制器,由后者自动完成初始配置。 当然也可以采用USB Key发放证书,标准化CPE的引导和认证过程来实现类似于手机的SIM机制。

6、对于安全策略应用的统一管理,包括基本的ACL策略、防火墙、流量清洗等应用。

7、多点隧道之间的动态路由协议支持。 考虑部分分支采用Internet连接,无法直接相连,需要通过有公网IP的分支或者总部进行中转。

电脑开机要按Ctrl+Alt+Del才能开机,怎么办?

解决方法如下:

方法1:通过组策略设置

开始-运行--“本地计算机”策略-计算机配置-安全设置-本地策略-安全选项-双击右侧窗口“交互式登录:不需按CTRL+ALT+DEL” -已启用-确定即可。

方法2:通过组策略设置

控制面板-管理工具-本地安全策略-本地安全设置-安全设置-本地策略-安全选项-双击右侧窗口“交互式登录:不需按CTRL+ALT+DEL”就可以看到启用和停用,选启用后,再点击确认,就ok了!

方法3:通过用户的相关设置来管理

开始——运行:rundll32 ,UsersRunDll

具体步骤如下:

方法1:通过组策略设置

开始-运行--“本地计算机”策略-计算机配置-安全设置-本地策略-安全选项-双击右侧窗口“交互式登录:不需按CTRL+ALT+DEL” -已启用-确定即可。

方法2:通过组策略设置

控制面板-管理工具-本地安全策略-本地安全设置-安全设置-本地策略-安全选项-双击右侧窗口“交互式登录:不需按CTRL+ALT+DEL”就可以看到启用和停用,选启用后,再点击确认,就ok了!

方法3:通过用户的相关设置来管理

开始——运行:rundll32 ,UsersRunDll

如果不能解决,请继续追问~,如果已经解决,请选择满意答案~谢谢~

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐