xss跨站之代码及http only绕过

2023-11-09

什么是http only,在cookie中设置了http only属性,那么通过js代码无法获取cookie,并不能防止xss漏洞,在上一节的靶场网站源代码里面,写上这一串代码就是启动http only

 再加上带去cookie的代码

 然后我们再去访问网站的后台,看看cookie有没有被盗走

 答案是没有。绕过出现http only,这个盗取cookie的攻击,基本上就直接阻止了,获取不到cookie信息了。

如何绕过http only,他只是防止cookie被读取,并不防止跨站漏洞,我想要获取后台的权限,有两种方法可以获取后台权限,一种是cookie,另一种是直接的账户密码登陆,因为http only限制了cookie的获取只能用账户密码去登陆,账户密码有些个人习惯,会把账户密码进行个保存,避免下次忘了密码,有一些浏览器会自动保存,如果对方设置了保存或者浏览器自动保存账户密码,我们是可以利用xss去读取账户免密的。

有两种情况,一种是保存读取,就是输入账号浏览器会自动补齐免密就是保存读取,比如qq的保存密码。

另一种没有保存读取,没保存就要重新输入一遍,

攻击就针对这两种情况进行攻击,保存的话,就可以通过读取他保存的数据,如果没有保存,就采用表单劫持,表单劫持这个xss平台什么就有

 我们看一下后台网站的前端,点开查看元素,看看什么是表单,

 表单劫持就是,把这个form表达给劫持了,我们抓一下登陆时数据包看看就清楚了,在后台登录界面,输入账户admin,密码123456,然后点登陆抓包看一下

 表单劫持就是把账户密码在发送到跨站平台里面去,相当于数据发了两份,一个正常发送出去,一个发送给了xss跨站平台,所以跨站平台就会收到账户密码,因为是明文账户密码就可以直接去登陆,这种是没有保存的攻击方式。这个跨站攻击方式是有前提的,前提就是跨站漏洞要产生在登录框哪里,如果没有产生在登录框哪里,跨站漏洞就要写在对方代码里面,或者执行其他代码能够触发跨站。登录框一般就是我们后台登陆地方,如果这个地方没有跨站的话,这种方法是不可行的。

我们刚刚攻击成功是因为是测试靶场,把跨站语句写在代码里面了,我们攻击方式要么在后台登陆页面把跨站语句写到对方代码里面去,要么去在这个页面构造一个触发地址,对方去访问他触发这个跨站代码。

如果采用登录框跨站劫持的话,必须是在登陆的地方有跨站漏洞,其他地方就不行,利用起来有些鸡肋。

保存读取,

保存读取账户密码是储存在浏览器的,我们新创建一个跨站漏洞,选项里面就有获取浏览器保存的明文密码,

 这几个值要和后台登陆的对应,我们可以直接在后台登陆网页,点击查看我网页源代码,就可以看到那些值,然后把对应的值填上就好,下面箭头所指就是,

 现在这个配置的跨站,就是专门用来搞浏览器保存账号密码的地方,我们在跨站平台复制跨站语句,假设我们已经攻击进来了,跨站语句写到了代码里面

然后在去访问后台地址,去看平台上面有没有

 

 用这个跨站漏洞直接写入对方代码,或者引诱对方访问那个代码的地址,触发这个跨站漏洞。

我们打开xss跨站靶场来干

 第一关很明显,网站里面name=tesr,然后网页上欢迎以后test,所以test是自定义,且可以输出出来的,我们把test改成1,测试一下,就变成了欢迎用户1.所以我们把注入语句写道test那里试一下,

第一关很简单。 

第二关,观察了一下也有test,而且也显示出来了,

我们试一下第一关的做法看看

不行,现在就开始讲如何手动去测试跨站漏洞,并且遇到这种情况该怎么解决,右键我们跨站语句看看元素,

 如何在右键这段语句所在的代码,点作为html编辑输出,

 就发现<变成了别的符合,这是为什么,就要去看一下网站的源码就明白了,

就是因为这个字符串,这个字符串的意思是

 将特殊字符转换为html实体,就是把<改成为了&gt,遇见这种情况我们该如何操纵,

 我们查看元素的时候看见,这里还有一串<script>,这个已经写进去了,我们也进行html编码看一下,为什么没有被执行呢,

 这时候我们只需要把这个双引号给闭合掉就可以了,在网址哪里前面加上给“>,给闭合掉

 

 成功拿下。

第三关

 搜索个111试试,看看页面的结果

 既然111能显示出来,就去看看111元素,

 只是有个双引号,试试第二关的方法可行不"><script>alert(5)</script>,不可以了,我们再查看一下元素,发现是单引号

'><script>alert(5)</script>,再修改成单引号

出现了实体,进行了括号的过滤,类似实体化,括号不可以用,可以用什么东西触发js脚本吗?

我们查看界面发现那个输入的地方,是一个表单,而表单里面html有相关的属性,鼠标属性,搜索框里面又属性,     

 去网上普及一下,html里面是有这个东西的,当点击就会执行一段java scirpt代码,

<button οnclick="copyText()">sccpy Texte</button>

用这个语法就可以把java script的语句写到了"copyText()"双引号里面来,然后就可以利用表单输入框的属性来调用执行js代码,就不需要再用<>这个符号了,该怎么去运用它,写法也非常简单,只需要复制οnclick="copyText()",然后把"copyText()"修改为

 元素这里又看到还有两个单引号在干扰,都需要闭合一下

'οnclick='alert(1)

然后输入,访问这里是没有任何反应的,需要我们点一下表单出发属性,然后调用js代码执行,

完成。 

第四关

 第四关的思路和第三关差不多,只不过是在搜索语句han之后,拼接上去的

"οnclick="alert(1)

,因为是双引号,所以也用双引号闭合。

 第五关

这里我们用第四关的代码放进去试一试,

 我们看一下源代码就明白了

 这里把on过滤成了o_n.  把script过滤出了scr_ipt,

这时候就不能采用on得了,所以我们就换一个不带on的触发代码,

采用地址超链接keyword="><a href='javascript:alert(1)'>

那个蓝色的">就是给超链接地址,点击这个他就会触发这里面的地址,就会触发元素指着的地址,地址就调用js代码去执行。

就成功了。

第六关

 把第五关的代码放进去看看试试,执行不出来,查看一下元素

 发现这里有hr_ef,被过滤掉了。第六关的过滤更加严谨了,肯定on也过滤了。

果然过滤了一堆东西。

发现全是小写,那我们试一下大小写过滤,

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

这串代码,带入搜索里面

可以了 

 利用大小写绕过,成功了

第七关,

输入跨站代码 keyword="><a href='javascript:alert(1)'> 试试.,发现并没有跨站代码执行出来,查看一下元素。

 href和script都被过滤为空了,打开代码看一下就明白了

不过这种不是循环过滤,他只过滤一次,所以我们写一个这样的代码进去 

keyword="><a hrhrefef='javascscriptript:alert(1)'>

被过滤一次后,就变成了 keyword="><a href='javascript:alert(1)'>

出现了超链接,点一下

成功了。

第八关

 发现是可以添加链接,那就直接添加个js代码进去试试,发现不行,然后查看元素看看,果然被过滤掉了。

 看一下源代码

 过滤了关键字符,而且大小写也不行。

因为他对语句过滤了,大小写也过滤了,还是循环过滤,所以我们换一种思路,编码

 编码完成,&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#49;&#39;&#41;

点击友情链接

完成了

第九关

试一下第八关的代码可不可以

 提示连接不合法,看一下代码是专门验证的

 验证的是有没有htpp://,没有这个东西就会显示连接不合法,既然检测有没有http://,那就在末尾加上这个

 然后如果只有http://会被干扰,语句也不能正常执行,所以在前面加上//注释一下,再点击执行。

 完成了。

第十关

在网址上修改well done!为111,网页上的也变成了111,

 而这个表单就没有数据了,加上下面没用显示出来输入的111,

为什么没有数据,只是数隐藏了,hidden,隐藏属性,隐藏表单的属性值。

第十关,就是让你不知道代码写到这里面是一个怎么样的组合,不管任何,尝试对他进行操作,我们看一下第十关的源码,看看该怎么操作这一关。

17行接受keyword的数据,18行接受t-sort的属性=变量str11,然后25value=变量str33,而变量str在20行等于变量str22,变量str22在19行有等于变量str11,而变量str11等于t-sort,所以这个value是可以控制它的,而 而变量str11等于t-sort,所以通过t-sort发送数据,然后19.20行还要<>的过滤。

所以我们就去利用第三关的类似属性,鼠标点击事件,onclick,而写到变量str33那里还有符合干扰,还要提前闭合掉干扰符号,在111后面&t_sort='οnclick="alert(1)" ,就可以显示出来了

 查看元素可以显示出来了,

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

 这里输入type=tesr的原因是因为隐藏属性,把搜索框给隐藏了,再写一个type=tesr是为了让搜索框出现,去触发鼠标事件,才能去调用js代码,

 完成了。

第十一关

按照十关一样的思路跨站语句,不知道那个值是参数,可以在四个显示的参数一个一个去试试,可以试出来。

但是这次此没用出现搜索框,这是为什么,我们去看一下源代码

 19行哪里。变量str11=$_SERVER[‘HTTP_REFERE’]  ,他就是检测来源,value值最终接收到是变量str11的值就是它的值。

这里抓住数据包,在数据包里面加上一个参数

Referer="type="text" οnclick="alert(1)"

点机放包,看到网页就出现了搜索框,然后点一下。

 过关了,选择来说一下新知识,

这个来源和跨站是有关系的,它是一种防御手段,举个例子,

xiaodi8后台添加管理员的数据包,

www.xiaodi8.com/adduser.php?username=xiaodi&password=123456

某人博客:www.woaixiaodi.com

---某人在博客首页加入代码:<script src=” www.xiaodi8.com/adduser.php?username=xd&password=123456”</script>

---如果博客的后台在登陆情况下,游客在访问某人博客时,会访问那个后台自动添加管理员数据包的网页,就会会自动在xiaodi8后台添加管理员(这个比较鸡肋,添加的永远是一个账户,应该获取游客的用户名和密码在小迪后台添加账户)

---小迪后台为了防止此类攻击,会检测来源:是否为同一域名,是否同源,

---XSS:跨站攻击;csrf:跨站请求伪造 

数据包里面这个 Referer,就是来源。

十二关

这一关抓取数据包 

 放包,出现了搜索框然后点一下

 成功了。

如何去判断有没用xss跨站漏洞,比如下面这个平台

看看那个xiaodisha可不可以自定义,看网址有没有,抓数据包看看可不可以更改,可以更改就把跨站语句写到哪里去。看看前端元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xss跨站之代码及http only绕过 的相关文章

  • JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

    JVM优化之 Xss Xms Xmx Xmn 参数设置 XmnXmsXmxXss有什么区别 Xmn Xms Xmx Xss都是JVM对内存的配置参数 我们可以根据不同需要区修改这些参数 以达到运行程序的最好效果 Xms 堆内存的初始大小 默
  • vue实现 marquee(走马灯)

    样式 代码 div class marquee prompt div class list prompt span class prompt item span div div data return listPrompt xxx xxxx
  • 30天精通Nodejs--第十九天:express-文件上传下载

    目录 前言 环境准备与依赖安装 文件上传功能实现 引入并配置express fileupload中间件 注意事项 文件下载功能实现 结语 前言 文件的上传和下载是许多应用程序必备的功能 Node js的Express框架同样可以通过集
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 如何在 Python 脚本中使用 Google OAuth2

    在使用 Python 脚本将视频上传到 YouTube 频道时 若希望将视频上传到第二个频道 需要解决 OAuth2 授权的问题 解决方案 创建新的 Google Cloud 项目 from google oauth2 import ser
  • 如何使用 HTML/PHP 防止 XSS?

    我该如何预防XSS https en wikipedia org wiki Cross site scripting 跨站点脚本 仅使用 HTML 和 PHP 我已经看过很多关于这个主题的其他帖子 但我还没有找到一篇文章清楚 简洁地说明如何
  • 清理 URL 以防止 Rails 中的 XSS

    在 Rails 应用程序中 用户可以创建事件并发布 URL 以链接到外部事件站点 如何清理网址以防止 XSS 链接 提前致谢 XSS 示例 rails 的清理方法无法预防该问题 url javascript alert XSS a href
  • ASP.Net Core 中的 AntiXSS

    Microsoft Web 保护库 AntiXSS https wpl codeplex com 已达到使用寿命 该页面指出 在 NET 4 0 中 框架中包含了一个 AntiXSS 版本 可以通过配置启用 在 ASP NET v5 中 基
  • PHP_SELF 和 XSS

    我发现一篇文章声称 SERVER PHP SELF 容易受到 XSS 攻击 我不确定我是否理解正确 但我几乎可以肯定这是错误的 这怎么可能容易受到 XSS 攻击
  • 将准备好的语句包装在函数中[重复]

    这个问题在这里已经有答案了 我一直在阅读有关 SQL 注入的文章 并决定修改我的代码以防止 SQL 注入 例如 我有一个输入 我将其值插入到数据库中 最初 我对注射的防范是这样的 function test input data data
  • 使用 Spring MVC 框架清理用户输入

    我正在使用 spring mvc 框架开发 Web 应用程序 我想知道是否有任何最好的方法来清理用户输入或通用方法来清理 springs 中的所有用户输入以避免 XSS 和 Sql 注入攻击 您可以使用Filters在 Spring 框架中
  • HTMLPurifier 破坏图像

    我试图根据 WYSIWYG CK 编辑器 的用户输入运行 HTMLPurifier 但图像损坏 未过滤的输入 img alt laugh src lib ckeditor plugins smiley images teeth smile
  • 如何修复java中反映的XSS

    我收到了强化报告 其中显示了来自下面第二行的 XSS 反射缺陷 String name request getParameter name response getWriter write 姓名 姓名 给出的建议 向 Web 客户端显示的所
  • 谁能解释一下这些 XSS 测试字符串吗?

    最近我发现了这个关于 XSS 和 Web 应用程序安全的教程 gt https www owasp org index php XSS Filter Evasion Cheat Sheet XSS Locator https www owa
  • 清理 AntiXSS v3 输出中的 html 编码文本(#decimal notation)

    我想在 XSS 安全的博客引擎中发表评论 尝试了很多不同的方法 但发现非常困难 当我显示评论时 我首先使用微软AntiXss 3 0 http www codeplex com AntiXSS对整个内容进行 html 编码 然后我尝试使用白
  • 尝试利用?

    我看到我的 nopCommerce 网站记录了以下搜索 ADw script AD4 alert 202 ADw script AD4 我有点好奇他们想要完成什么 我搜索了一下 似乎是ADw script AD4 以 UTF7 编码为
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • 防止XSS漏洞的措施(比如Twitter前几天的一个)

    就连Twitter这样的知名网站也存在XSS漏洞 我们应该如何预防这种攻击呢 您可以做的第一件事是将您的 cookie 设置为仅 HTTP 这至少可以防止会话 cookie 劫持 就像当您可能是自己网站的管理员时有人窃取您的 cookie
  • 创建全屏 iframe

    我目前正在研究 XSS 攻击 目的是在客户端演示中使用它们 我是渗透测试员 我编写了一个工具 该工具将托管网站登录页面的恶意版本 获取用户名和密码 然后将受害者重定向回原始网站 然而 我一直在尝试使用 iframe 来让它工作 因为它看起来
  • 如何使用 owasp antisamy 不将特殊字符转换为 html 实体

    我使用 Owasp Anti samy 和 Ebay 策略文件来防止我的网站受到 XSS 攻击 我还使用 Hibernate 搜索来索引我的对象 当我使用这段代码时 String html special word t use the Eb

随机推荐

  • oracle sql developer 介绍

    为了进一步提高开发人员效率 简化Oracle数据库开发 甲骨文公司日前宣布Oracle SQL Developer 2 1版上市 这是广受欢迎的数据库开发和迁移工具Oracle SQL Developer的最新版本 Oracle SQL D
  • MySQL与PostgreSQL对比

    MySQL PostgreSQL 数据类型支持 支持JSON 但不如PostgreSQL 支持更多的数据类型 如数组 hstore JSON JSONB 范围类型等 扩展性 有一些扩展性 但不如PostgreSQL 支持自定义数据类型 函数
  • 阿里 P7 到底是怎样的水平?

    阿里 P7 有多香 大家谈到阿里 P7 第一反应可能就是年薪百万 我们先看一下阿里的职级体系 P7 一般薪水在 70 100 万之间 超过 100 万的屈指可数 除非你是阿里 5 年以上的老 P7 薪资构成包括现金和股票 现金部分 大概的月
  • 测试人员具备的技术要求

    刚刚接触测试时 看到的文章 保存起来了 现在分享给大家 一名优秀的测试人才 目前我们国内的企业或者外企 包括大型的软件企业 一般情况下应该有哪些技术要求呢 具体来讲 第一 对Windows Linux Unix等大型主流操作系统的使用和应用
  • 让你的DBCP连接池连接不超时

    项目使用DBCP连接池 登录系统后 一段时间没有操作 再点击其他页面就报错 the last packet send to mysql was ago 度娘一下 知道是数据库连接超时 怎么解决呢 首先想到的是MySQL数据库配置文件 mys
  • vsCode JS代码格式化插件ESlint

    vsCode JS代码格式化插件ESlint 验证有效 Ctrl S保存代码全格式化了 写这个主要是个人笔记 算不得重复造 源头 https blog csdn net qq 34803821 article details 8497278
  • 八大排序算法(C语言实现)

    摘自 八大排序算法 C语言实现 作者 2021dragon 发布时间 2021 05 16 10 46 37 网址 https blog csdn net chenlong cxy article details 116563972 目录
  • STM32+亚博K210手写数字识别

    本文以STM32C8T6为例 使用的是亚博K210视觉识别模块 实现功能 由K210识别手写数字 通过K210与STM32的串口通信 将识别到的手写数字传回STM32 最后由OLED显示 接线方式 STM32与OLED B8 SCL B9
  • MVVM 框架

    在 MVVM Light 框架中 事件是 WPF 应用程序中 UI 与后台代码进行交互的最主要方式 与传统方式不 同 mvvm 中主要通过绑定到命令来进行事件的处理 因此要了解 mvvm 中处 理事件的方式 就必须先熟悉命令的工作原理 命令
  • 关于编译性语言、解释性语言和脚本语言的区别

    计算机是不能理解高级语言 当然也就不能直接执行高级语言了 计算机只能直接理解机器语言 所以任何语言 都必须将其翻译成机器语言 计算机才能运行高级语言编写的程序 一 翻译和解释的不同 翻译的方式有两种 一个是编译 一个是解释 两种方式只是翻译
  • CUDA编程性能分析工具 nvprof/ncu --metrics参数含义

    摘要 在网上没有比较全的中文 ncu metrics 参数含义 于是自己整理了一下官方和外国友人的笔记 nvprof 和 ncu nvprof 是过去比较常用的命令行工具 但在终端直接输入nvprof o会得到以下 Warning Warn
  • 宝塔 ssl https无法访问使用

    https 使用的是443端口 请确保 云上的与宝塔上的443端口开放即可 转载于 https www cnblogs com wdw31210 p 11058824 html
  • 用手绘画图方式解释numpy.mgrid函数的二维三维数组

    这个np mgrid 起始值 结束值 步长 起始值 结束值 步长 表示的一个 起始值 结束值 的数组 其中间隔为步长 而x ravel 将x变为一维数组 把 前变量拉直 这样讲很难理解 直接看例子 来吧 1 首先看这个二维数组例子 impo
  • Linux、网络编程

    1 linux系统内核态和用户态是什么 有什么区别 当一个进程在执行用户自己的代码时处于用户运行态 用户态 当一个进程因为系统调用陷入内核代码中执行时处于内核运行态 内核态 用户运行一个程序 该程序创建的进程开始时运行自己的代码 处于用户态
  • 3DMax 不断崩溃,常见的5种处理方案!

    Autodesk 3DS Max 是一种流行的 3D 建模和动画软件 被图形设计和游戏行业的许多专业人士使用 但是 与任何其他软件一样 用户会遇到崩溃问题 本文列出了 5种常见的解决方案 用于排除故障并解决 3DS Max 崩溃问题 Aut
  • Mysql 的 聚簇索引和二级索引

    原文地址 聚簇索引和二级索引 增加部分补充和理解 目录 1 索引的简述 1 聚簇索引 2 非聚簇索引 二级索引 辅助索引 2 示例 聚簇索引 主键索引 二级索引 辅助索引 3 结论 结论一 结论二 写在前面 针对原博主的讲述 网友提出相应补
  • 【算法】骑士周游 ---递归的说明

    因为说明中没有对应具体代码 请先看最下方代码在看说明 普通递归 创建一个二维空表做棋盘 用step记录走过的步数 用来增加条件判断游戏是否成功 棋盘上记录步数 使用visted记录是否该点是否走过 一张一维标记对应二位棋盘是否已走过 递归的
  • ElasticSearch RestHighLevelClient 教程(三) 删除&&查

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net paditang article details 79172837 前言 删除文档作为
  • C语言在字符串中删除特定字符

    当出现特定字符的位置用一个新定义的字符串进行类似跳过特定字符的操作 输入 s 输出 adlfjaljgowea include include void delSpace char s char c int main char str 80
  • xss跨站之代码及http only绕过

    什么是http only 在cookie中设置了http only属性 那么通过js代码无法获取cookie 并不能防止xss漏洞 在上一节的靶场网站源代码里面 写上这一串代码就是启动http only 再加上带去cookie的代码 然后我