27 WEB漏洞-XSS跨站之代码及httponly绕过

2023-09-22 15:53:18

HttpOnly安全过滤测试

在这里插入图片描述
防止xss攻击,指的是攻击手法,并不是能防止XSS漏洞,httponly阻止的仅仅只是cookie

httponly在相关的脚本都是支持的,我们根据自己网站的脚本环境,有相当的开启方法

httponly开启方法:https://jingyan.baidu.com/article/5553fa82a8248c65a3393442.html

对方开启httponly,你在攻击盗取cookie失败的情况下,我们可以采取其它方案,我们需要的是登录后台的权限,后台权限里面有两种方式进入,一种是cookie获取进入后台,一种是直接账号密码登录进入后台,所以我们可以采取获取账号密码登录,一般网站管理者习惯在登录一些网站后台之后进行保存,防止下次登录还需要重新输入密码,比较麻烦,或者有些浏览器会自动保存;如果对方有进行这些操作,那我们可以利用xss漏洞对这些浏览器密码进行读取

像我们在登录地址输入账号,他直接补齐密码,这个就属于保存读取,就是浏览器已经记录了你之前登录的账号密码,如果没有保存就是让你重新输入密码;我们的攻击可以针对这两种情况进行攻击,如果对方是保存的话,我们可以读取对方保存的数据,如果说没保存的话,我们就采取表单劫持,这是两个概念

表单劫持就是相当于把数据在发送一份到跨站平台,就相当于提交的数据一份给了服务器,一份给了跨站平台,所以我们就能够接收到明文的账号密码,这个时候我们可以直接用明文的账号密码去登录他的账号,这是建立在未保存读取的攻击方式,但是这个攻击有个前提条件,就是产生在登录框,如果你的跨站没有产生在登录框这里,就相当于你攻击的话,需要把你的跨站语句写到对方的代码,或者执行相关的代码,才能够触发跨站

登录框这个地方一般是我们后台登录的地方,这个地方假如没有跨站的话,表单劫持这种方法是不可行的,因为我们的攻击语句已经写到了登录页面这里,我们在攻击的时候,要么在攻击页面,把跨站代码写进去,就是储存型跨站;要么在地址上面,构造一个触发地址,对方去访问它,触发这个跨站代码,所以它是有些前提条件的,如果说我们采取登录框表单劫持的话,那么跨站漏洞必定产生在登录的地方,如果是向前面的其它地方就不行,所以这个未保存读取利用起来比较鸡肋

如果是保存读取,说明账号密码是保存在浏览器的,在xss平台配置好需要浏览器记住的明文密码的策略配置
在这里插入图片描述
再重新登录账号,这个时候xss平台就会获取用户的明文账号和密码,有时候xss平台会有延迟,多等一会就好

HttpOnly安全过滤绕过思路

代码类过滤:Xsslabs

HttpOnly属性过滤防读取

绕过httponly:

浏览器未保存帐号密码:需要xss产生登录地址,利用表单劫持

浏览器保存帐号密码:产生在后台登录框的xss,存储型xss如留言等,浏览器读取帐号密码

在一些网站登录,大部分都会记住账号密码,只要是个人电脑、浏览器都会记住

演示案例:

Xsslabs关卡代码过滤绕过测试

php htmlspecialchars()函数将特殊字符转换为HTML实体
实体化是经常过滤xss的一种情况,我们只要把双引号闭合掉就可以了。

"><script>alert(1)</script>

尖括号不能用的话,我们可以用

' οnclick='alert(1)    ' οnmοuseοver='alert(/xss/)

事件属性,单击时就可以触发了。
找跨站点,我们一定要去分析,绕过也要去分析

" οnclick="alert(1)

过滤相关关键字,我们可以利用大小写绕过

"><a Href='javasCript:alert(1)'>

双写绕过

"><a HHREFref='javasCscriptript:alert(1)'>

他不是循环过滤,他是一次过滤,所以你让他过滤为空之后再写死就好了。

xss语句unicode编码绕过

&#74;&#97;&#118;&#97;&#83;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#49;&#39;&#41;

有的验证你得带有某些东西才可以,比如http://,我们可以两斜杆注释http://,然后让这个http://绕过过滤,然后利用编码绕过前面的过滤

&#74;&#97;&#118;&#97;&#83;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#49;&#39;&#41;//http://

我们是强调知识的全面性,那个东西重要是根据你自己的情况,有些人认为重要,有些人认为不重要,反正你认为重要,你就好点学,你认为不重要,就不学,这个根据大家自己的需求

数据隐藏,隐藏表单的属性值,把我们写入的xss语句给隐藏起来,让我们不知道自己代码写入到里面是什么组合,我们可以修改html代码的属性,把它修改成text属性,因为他以后面为准

&t_sort="type="text" οnclick="alert(1)"

type="text"是为了让框显示出来,好让鼠标去触发点击事件,不是这个type必须要写,其实不写也是能够正常执行的

像我前面讲的那些,在实战情况下,我们是碰不到的,是以后有些比赛,你学一下他的绕过思路,会比较好一些;但是在实战情况下,一些简简单单的绕过思路学一下就好了

网上的一些过关文章也可以去看,虽然他没有讲原理,我们去查一下资料应该是没有大问题的

PHP $_SERVER['HTTP_REFERER']   获取前一页面的 URL 地址

REFERER和xss关系不是很大,和csrf关系很大
可以在referer和user-agent中添加xss语句
xss和我们的注入是一样的,我们注入的时候可以通过post、get发送数据,也可以通过数据包里面的参数发送数据,只是说对方代码是怎么接收的,你就怎么发送,所以说漏洞的原理都是通用的

由于xss漏洞在实战情况下是需要别人配合的攻击,一般你盗取别人的cookie,去攻击别人,需要别人去触发这个漏洞才行,他不是像注入、上传主动的攻击,别人不知道你也能够攻击

学习xss绕过,大部分都是搞比赛的时候,可能会考这一点,如果在实战情况下,是不会这么绕的,它不会有这么多拦截,要么能绕过要么不能绕过

通过访问网站的数据包,修改数据里面的内容为跨站语句,来测试有没有跨站漏洞即可,这就是手工判断有么有跨站漏洞的最简单方法了

有时间xss平台可以自己去搭建一个

更多推荐

JUC相关面试题

👏作者简介:大家好,我是爱发博客的嗯哼,爱好Java的小菜鸟🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦📝社区论坛:希望大家能加入社区共同进步🧑‍💼个人博客:智慧笔记📕系列专栏:面试宝典本文引自黑马程序员Java面试宝典JUC基础薄弱的可以先看JUC详解文章目录面试官:聊一下并行和并发有什么

干货:数据仓库基础知识(全)

1、什么是数据仓库?权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。1)数据仓库是用于支持决策、面向分析型数据处理;2)对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。面对大数据的多样性,在存储和处理这些大数据

【算法】单调栈

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kaf

JAVA开发技术能力和学历哪个重要?

Java开发技术能力和学历都是Java开发人员必须具备的基本条件,二者之间没有谁更加重要的绝对答案。不同的人在不同的时期,所处的不同环境下会给出不同的答案。下面从多个角度进行讨论,探究Java开发技术能力和学历哪个更重要。1、招聘角度从企业的招聘需求来看,技术能力在某些情况下更为重要。随着科技的不断发展,对于一些前沿技

8位微控制器上的轻量级SM2加密算法实现:C语言详细指南与完整代码解析

引言在当今的数字化世界中,安全性是每个系统的核心。无论是智能家居、医疗设备还是工业自动化,每个设备都需要确保数据的安全性和完整性。对于许多应用来说,使用高级的微控制器或处理器可能是不切实际的,因为它们可能会增加成本、功耗和尺寸。这就是为什么8位微控制器仍然在许多应用中占据着重要的地位。但是,8位微控制器的计算能力有限,

天翎知识管理系统:支持多种文件类型,整合各类知识资源

编者按:知识管理系统支持多种格式可以更好地适应不同的业务需求和行业规范,同时也可以避免文件格式不兼容带来的麻烦。本文将介绍天翎知识管理系统的文件类型支持,包括文档格式的在线预览及在线编辑,以便用户可以更全面地了解天翎系统。知识管理系统文件类型支持在线预览天翎知识管理系统支持多种文档格式在线预览,可以让用户在不下载文档的

Mybatis面试题(三)

文章目录前言一、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?二、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定pojo?三、模糊查询like语句该怎么写四、通常一个Xml映射文件,都会写一个Dao接口与之对应,Dao的工作原理,是否可以重载

安卓毕业设计各种app项目,Android毕设设计,Android课程设计,毕业论文

作为一位从事软件开发多年的专业人士,您积累了丰富的经验和技能,解决了许多不同类型的问题。除了开发原创项目,您还愿意分享您的知识,指导实习生和在校生。这种乐于助人的行为对于行业的发展和新一代软件开发者的成长都起着积极的促进作用。辅导实习生或在校生有许多好处。首先,您可以通过与他们分享您的经验和见解,帮助他们更好地理解软件

Zookeeper运维

我是一个目录1.参数说明2.Zookeeper优化建议3.Zookeeper性能查看4.建议1.参数说明工作节点瞬间压力大,导致和集群通信出现延迟,被踢出节点,瞬间释放的连接立即又连接到另外节点,最终集群挂掉。加了一些延迟配置后,集群稳定。参数说明tickTime=2000Zookeeper服务器之间或客户端与服务器之

BD就业复习第四天

1.布隆过滤器怎么实现去重布隆过滤器是一种用于快速检查一个元素是否可能存在于一个大集合中的数据结构,但它并不适用于精确去重。因为布隆过滤器具有一定的误判率(可能会将不存在的元素误判为存在),所以不能确保完全的去重。但可以结合其他数据结构来实现近似的去重功能。以下是使用布隆过滤器进行近似去重的一般步骤:初始化布隆过滤器:

Android Key/Trust Store研究+ssl证书密钥

前言:软件搞环境涉及到了中间件thaltrustzonecertificatekey,翻译过来是thal信任区域证书密钥,不明白这是什么,学习一下ssl证书密钥SSL密钥是SSL加密通信中的重要组成部分。SSL证书通过加密算法生成,用于保护网络通信的安全性和私密性。密钥是一种密码学算法中的关键元素,用于加密和解密敏感信

热文推荐