• HTTP Only限制XSS盗取cookie


    今天继续给大家介绍渗透测试相关知识,本文主要内容是HTTP Only限制XSS盗取cookie。

    免责声明:
    本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
    再次强调:严禁对未授权设备进行渗透测试!

    一、HTTP Only原理

    在上文XSS平台与cookie获取中我们提到过,XSS攻击的主要手段之一就是盗取目标用户cookie。针对这一情况,我们可以设置HTTP Only来防止Cookie被盗取。
    在设置了HTTP Only后,我们就无法通过document对象直接获取到cookie值,这样就避免了使用XSS的手段拿到cookie值,进而使用cookie登录系统了。

    二、HTTP Only设置

    HTTP Only的设置可以采用三种方式:
    1、php.ini文件设置
    在PHP配置文件中,将session模块的:session.cookie_httponly属性设置为True或者1。
    PHP配置文件设置如下所示:
    在这里插入图片描述
    2、页面设置
    除此之外,我们还可以在页面中进行设置,在页面中添加如下代码:

    
    ini_set("session.cookie_httponly", 1); 
    ?>
    
    • 1
    • 2
    • 3

    或者是

    
    session_set_cookie_params(0, NULL, NULL, NULL, TRUE); 
    ?>
    
    • 1
    • 2
    • 3

    也可以设置HTTP Only
    3、函数设置
    最后,我们在发送cookie时,也可以使用setcookie函数,常用的cookie设置函数有两种,该函数的第7个参数如果设置为TRUE,则表示开启HTTP Only,如下所示:

    setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
    setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
    
    • 1
    • 2

    注意:这三种设置方法,作用域逐级递减,但是优先级不断升高。有的同学在做HTTP Only实验的时候,无法得到预期的结果,就是因为只更改了PHP配置文件设置或者页面设置,但是由于函数设置要优先于PHP配置文件设置,因此实际上并没有设置HTTP Only。
    在这里特别说一下使用DVWA做实验的同学,你必须将安全级别修改为impossible,你的HTTP Only设置才会生效。但是一旦你更改为impossible之后,你很难将XSS代码插入到留言板中(当然,鉴于你肯定能够操作网站源码,因此你可以直接在源码层次上插入)。
    在开启HTTP Only后,服务器在向客户端发送cookie时,就会添加HttpOnly字段,如下所示:
    在这里插入图片描述
    此外,我们也可以在浏览器自带的开发者工具中,查看到该cookie的HTTPOnly字段被打上了勾,如下所示:
    在这里插入图片描述

    三、HTTP Only效果展示

    最后,我们来展示一下HTTP Only的效果。

    (一)控制台展示

    我们当前的Cookie状态如下所示:
    在这里插入图片描述
    可以看出,当前有2个cookie是设置了HTTP Only,还有一个cookie是没有设置HTTP Only。我们在浏览器控制台中,尝试使用JavaScript代码查看当前的cookie,结果如下所示:
    在这里插入图片描述
    可以看出,一个cookie被设置为HTTP Only后,就无法通过JavaScript代码获取到。

    (二)XSS平台展示

    此外,我们还可以来尝试看设置了HTTP Only属性后,使用XSS平台能否获得Cookie。
    我们使用熊海CMS来进行实验。熊海CMS原始代码如下所示:
    在这里插入图片描述
    如果我们想将cookie设置为HTTP Only属性,就需要把setcookie()函数修改为如下所示:
    在这里插入图片描述
    这两种不同的设置,决定了cookie是否含有HTTP Only属性,XSS平台获取的信息如下所示:
    在这里插入图片描述
    从上图中可以看出,在设置了HTTP Only后,XSS平台无法获得用户的Cookie信息了。
    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 相关阅读:
    【华为OD机试真题 JS】求最多可以派出多少支团队
    内切相减原理绘制CAD图形
    公共用房管理系统有哪些功能和范围?
    指定端口被system程序占用解决方法
    Sandboxie+Buster Sandbox Analyzer打造个人沙箱
    6---Linux下版本控制器Git的知识点
    BI工具-DataEase(1) 安装
    NLP(六十七)BERT模型训练后动态量化(PTDQ)
    TensorFlow.NET--数据类型与张量详解
    Kettle连接Oracle(Oracle19c&Oracle11g)
  • 原文地址:https://blog.csdn.net/weixin_40228200/article/details/127971946