[xss-3]httponly绕过

这篇具有很好参考价值的文章主要介绍了[xss-3]httponly绕过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是HttpOnly

HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险(如果浏览器支持的话)

下面的例子展示了如何设置Set-Cookie 返回头的语法

Set-Cookie: =[; =]
[; expires=][; domain=<domain_name>]
[; path=<some_path>][; secure][; HttpOnly]

如果HTTP响应标头中包含HttpOnly标志(可选),客户端脚本将无法访问cookie(如果浏览器支持该标志的话)。因此即使客户端存在跨站点脚本(XSS)漏洞,浏览器也不会将Cookie透露给第三方。

如果浏览器不支持HttpOnly,并且后端服务器尝试设置HttpOnly cookie,浏览器也会忽略HttpOnly标志,从而创建传统的,脚本可访问的cookie。那么该cookie(通常是会话cookie)容易受到XSS攻击

作用:使用HttpOnly缓解最常见的XSS攻击

大多数XSS攻击都是针对会话cookie的盗窃。后端服务器可以通过在其创建的cookie上设置HttpOnly标志来帮助缓解此问题,这表明该cookie在客户端上不可访问。
如果支持HttpOnly的浏览器检测到包含HttpOnly标志的cookie,并且客户端脚本代码尝试读取该cookie,则浏览器将返回一个空字符串作为结果。这会通过阻止恶意代码(通常是XSS)将数据发送到攻击者的网站来使攻击失败。

PHP中的设置

PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中

 session.cookie_httponly = 

设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启:

 <?php
  ini_set("session.cookie_httponly", 1); 
 // or
  session_set_cookie_params(0, NULL, NULL, NULL, TRUE); 
 ?> 

Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为:

setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
 setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);

对于PHP5.1以前版本以及PHP4版本的话,则需要通过header函数来变通下了:

<?php
  header("Set-Cookie: hidden=value; httpOnly");
  ?> 

httponly仅仅阻止盗取cookie

登陆后台方式:
1.cookie
2.账号密码登录

httponly绕过,小迪安全笔记,web,web安全

获取用户账号密码

保存读取
浏览器记录
读取用户浏览器即可

未保存读取
用户自己输入 -表单劫持
要求-登录框

代码写入登录页面
httponly绕过,小迪安全笔记,web,web安全
用户将发出两个数据包一个是xss跨站平台 一个是服务器

xss平台上配置代码
httponly绕过,小迪安全笔记,web,web安全

httponly绕过,小迪安全笔记,web,web安全

将代码写入后台登陆框
httponly绕过,小迪安全笔记,web,web安全

xss-lab

level2
httponly绕过,小迪安全笔记,web,web安全

httponly绕过,小迪安全笔记,web,web安全

其中<和>都被编码成了html字符实体。
只需要将属性的引号和标签先闭合就可以了。

将keyword的参数值重新赋值">//
左边的">去闭合原先的"
右边的//去注释原先的">

level3

httponly绕过,小迪安全笔记,web,web安全
尖括号被过滤
利用事件触发

通过标签的一些特殊事件来执行js代码

构造代码:level3.php?keyword='onfocus=javascript:alert('xss') > //

level4

<和>没有了
事件触发却不需要使用这两个符号。

用上一关的代码:"onfocus=javascript:alert('xss')"
level5
on后面加了关键字
httponly绕过,小迪安全笔记,web,web安全
httponly绕过,小迪安全笔记,web,web安全

使用超链接

"> <a href=javascript:alert('xss') > xss</a> //

level6
过滤很多
httponly绕过,小迪安全笔记,web,web安全

大小写混写

"> <a HrEf=javascript:alert('xss') > xss</a> //

level7
无循环过滤
双写关键字

"oonnfocus=javascriscriptpt:alert('xss')>//

httponly绕过,小迪安全笔记,web,web安全

level8
提交的参数值一个会插入到标签的value属性值中,
一个会插入到下方标签的href属性值中。
测试服务器对客户端的处理
将要提交的js代码进行编码
httponly绕过,小迪安全笔记,web,web安全

level9

提交的参数值插入到了标签的value属性值中

但是在标签的href属性中却并没有出现该参数值,

而是显示的 "您的链接不合法?有没有!"这样的字符串。

猜测这里可能对url地址做了匹配。

只有包含正常的url地址才能添加到href属性值中

构造一个有正常url地址的恶意代码:

?keyword=javascript:alert('xss')http://www.baidu.com

关键字编码
httponly绕过,小迪安全笔记,web,web安全

level10

在源码中有一个隐藏的表单。
其中含有t_link t_history t_sort这样三个隐藏的标签

构造

?keyword=<script>alert('xss')</script>&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"


httponly绕过,小迪安全笔记,web,web安全

从页面响应来看,有一个标签的状态可以被改变。这个标签就是名
为t_sort的标签,之前都是隐藏状态,但是通过构造参数响应发现只
有它里面的值被改变了。
因此可以从该标签进行突破,尝试能不能注入恶意代码进行弹窗。
构造如下代码:

?keyword=<script>alert('xss')</script>&t_sort=" type="text" οnclick="alert('xss')

将js代码插入到标签的属性值中来执

行而不能通过闭合标签引入新的标签来触发xss

httponly绕过,小迪安全笔记,web,web安全
检测来源 同源策略-是否为同一域名文章来源地址https://www.toymoban.com/news/detail-675541.html

到了这里,关于[xss-3]httponly绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小迪安全培训2023期笔记汇总-持续更新

    课件内容以及部分复现 章节内容 应用架构:Web/APP/云应用/小程序/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令:文件上传下载/端口服务/Shell反弹等 抓包技术:HTTP/TCP/UDP/ICMP/DNS/封包/代理等 算法加密:数据编码/密码算法/密码保护/反编译/加壳等 Web常规

    2023年04月23日
    浏览(42)
  • 小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&数据提取&组件安全

    # 知识点: 1 、 Java 反序列化演示 - 原生 API 接口 2 、 Java 反序列化漏洞利用 -Ysoserial 使用 3 、 Java 反序列化漏洞发现利用点 - 函数 数据 4 、 Java 反序列化考点 - 真实 CTF 赛题 - 审计分析 # 内容点: 1 、明白 -Java 反序列化原理 2 、判断 -Java 反序列化漏洞 3 、学会 -Ysoserial 工具

    2024年04月10日
    浏览(63)
  • 小迪学习笔记(内网安全)(常见概念和信息收集)

    DMZ同于存放不得不给外网访问的设备,与内网独立区分开,中间有一道防火墙,因此攻破web服务器并提权并不代表攻破了内网,还需要一系列操作才能攻到内网。当然,有部分公司的内网就处于web服务器,这样攻击成功web服务器就相当于攻击内网。 局域网 : 局域网(Local

    2024年03月27日
    浏览(46)
  • 小迪安全25WEB 攻防-通用漏洞&SQL 读写注入&MYSQL&MSSQL&PostgreSQL

       #知识点:  1、SQL 注入-MYSQL 数据库  2、SQL 注入-MSSQL(SQL server) 数据库  3、SQL 注入-PostgreSQL 数据库  #详细点:  Access 无高权限注入点-只能猜解,还是暴力猜解           因为access的数据库是独立存在的,不存在统一管理 对账号密码进行猜解,此时只是获取到后台的操

    2024年02月20日
    浏览(58)
  • 小迪安全20WEB 攻防-PHP 特性&缺陷对比函数&CTF 考点&CMS 审计实例

    #研究对象 PHP代码漏洞(代码问题) # 知识点: 1 、过滤函数缺陷绕过 2 、 CTF 考点与代码审计 一、原理-缺陷函数-使用讲解-本地 内置函数: 大部分是比较函数(过滤时使用的函数) (1)、== 与 === : 参考: PHP 浅谈 == 和=== 中,数字和字符串比较的问题。_php 数字==字符串

    2024年01月19日
    浏览(55)
  • XiaodiSec day031 Learn Note 小迪安全学习笔记

    XiaodiSec day031 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 基础内容在 ctfshow 中演示 中间件 cms 中的文件上传 文件上传一般配合抓包 前台验证, 在前台改就可上传成功 php 后缀的文件有 php 后门,可连接后门 MIME 验证 就是在抓包中数据包中的字段 content-type 中有内容

    2024年04月27日
    浏览(30)
  • XiaodiSec day014 Learn Note 小迪安全学习笔记

    XiaodiSec day014 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 php全局变量 server mysql插入语法insert 搜索文件,提交表单 使用Php连接数据库,使用sql语句中的like 进行模糊查询 使用php查询内容,使用echo将内容打印到页面上 php中的连接符号是 . ,可以将php, html标签或引号冲

    2024年04月26日
    浏览(28)
  • 小迪安全19WEB 攻防-.NET 项目&DLL 反编译&未授权访问&配置调试报错

    # ASPX 知识点: 1 、 .NET 配置调试 - 信息泄露 2 、 .NET 源码反编译 -DLL 反编译 3 、 .NET 常见安全问题 - 未授权访问 .NET:大部分都是通性漏洞;与java语言类似;本身被封装后,需要通过反编译获取之前的信息;大部分都是在windows上进行;#c是针对.net开发的,.net是一个开发框架;

    2024年01月21日
    浏览(63)
  • 【小迪安全】Day03基础入门-抓包&封包&协议&APP&小程序&PC应用&WEB应用

    有些应用是看不到的 手机app、微信小程序、PC应用 Windows、Linux 2.1.1抓包封包工具 Fiddler: 是一个 http 协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的 http 通讯,设置断点,查看所有的“进出”Fiddler 的数据(指 cookie,html,js,css 等文件)。 Fiddler 要比其他的

    2024年02月03日
    浏览(56)
  • Web安全测试(五):XSS攻击—存储式XSS漏洞

    结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部文章请访问专栏: 《全栈安全测试教程(0基础

    2024年02月10日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包