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绕过 的相关文章

  • 【gee】下载modis土地利用类型

    var china ee FeatureCollection projects assets china boundary var lc dataset ee ImageCollection MODIS 061 MCD12Q1 filter
  • Codeigniter - 基于帖子禁用 XSS 过滤

    我正在尝试在网站后面设置一个 CMS 但是每当发布数据时 a href 其中帖子数据被废弃 input gt post content true 打开它 但如何关闭它 感谢大家 PVS 如果您想更改默认行为post 方法 您可以扩展核心输入
  • 每天10个前端小知识 <Day 14>

    前端面试基础知识题 1 CSSOM树和DOM树是同时解析的吗 浏览器会下载HTML解析页面生成DOM树 遇到CSS标签就开始解析CSS 这个过程不会阻塞 但是如果遇到了JS脚本 此时假如CSSOM还没有构建完 需要等待CSSOM构建完 再去
  • 【前端】canvas图片加文字

    注释标记了操作步骤 import React Component createRef from react class CertifyImgRender extends Component bgRef createRef
  • 如何使用 AntiXss 库正确清理内容?

    我有一个简单的论坛应用程序 当有人发布任何内容时 我会 post Content Sanitizer GetSafeHtml post Content 现在 我不确定我是否做错了什么 或者发生了什么 但它不允许几乎没有 html 甚至简单
  • 在没有脚本标签的情况下执行 XSS JavaScript

    我正在学习 XSS 出于道德目的 我想知道如何在不使用
  • JavaScript - 跨站脚本 - 权限被拒绝

    我有一个 Web 应用程序 我正在尝试使用 Twitter 的 OAuth 功能 该应用程序有一个链接 提示用户输入 Twitter 凭据 当用户单击此链接时 将通过 JavaScript 打开一个新窗口 该窗口用作对话框 这是这样完成的
  • 上的 XSS 数据 URI 是否可被利用?

    读完这篇文章后 我没有一个明确的答案 http palizine plynt com issues 2010Oct bypass xss filters http palizine plynt com issues 2010Oct bypa
  • PHP:如何彻底防止XSS攻击?

    如何才能完全防止 PHP 中的 xss 攻击 这是假设我不关心任何 HTML 标签或其他格式 仅运行 strip tags 并使其完全安全就足够了吗 Both htmlspecialchars and strip tags 被认为可以安全地
  • 在 Struts 2 中使 ${} 运算符 XSS 安全(与 Tapestry 相同)

    正如中提到的http www disasterarea co uk blog xss vulnerability in web frameworks 2 http www disasterarea co uk blog xss vulner
  • Asp.Net MVC 输入验证在禁用后仍然触发

    我已经禁用了validateRequest在我的 web Config 中 但应用程序仍然引发错误 从客户端检测到潜在危险的 Request Form 值 我的 web Config 中有以下内容
  • 将准备好的语句包装在函数中[重复]

    这个问题在这里已经有答案了 我一直在阅读有关 SQL 注入的文章 并决定修改我的代码以防止 SQL 注入 例如 我有一个输入 我将其值插入到数据库中 最初 我对注射的防范是这样的 function test input data data
  • Wymeditor 跨子域。 (跨站点权限问题。)

    我在 sub1 domain com 上有 wymeditor 它是通过 sub2 domains com 上的页面访问的 这行给出了一个错误 var styles this doc styleSheets 0 权限被拒绝http remo
  • 如何使用 Struts 预防 XSS 漏洞

    我们需要在 Struts 应用程序中添加反 XSS 支持 最具体地说 架构师要求所有用户输入在存储到数据库之前必须进行 清理 由于我不想重新发明方轮 我可以使用哪个 Java 库来实现此目的 以及把它放在哪里 理想情况下 它应该是可配置的
  • 什么是 http 标头“X-XSS-Protection”?

    所以我现在一直在 telnet 中玩弄 HTTP 即只需输入telnet google com 80并放入具有不同标头的随机 GET 和 POST 等 但我遇到了 google com 在其标头中传输的一些我不知道的内容 我一直在翻阅htt
  • img src 属性中使用 javascript 进行 XSS 攻击

    一些较旧的浏览器容易受到 XSS 攻击 img src 当前版本的 IE FF Chrome 不是 我很好奇是否有浏览器容易受到类似的攻击 img src somefile js or 或其他类似的地方 somefile js 包含一些恶意
  • CodeIgniter - 为什么使用 xss_clean

    如果我正在清理我的数据库插入 并且还转义我编写的 HTMLhtmlentities text ENT COMPAT UTF 8 是否还需要使用 xss clean 过滤输入 它还有什么其他好处 xss clean http docs gip
  • 防止语言环境文件中的 HTML 字符实体被 Rails3 xss 保护破坏

    我们正在构建一个应用程序 这是我们第一个使用 Rails 3 的应用程序 并且我们必须从一开始就构建 I18n 作为完美主义者 我们希望在我们的视图中使用真正的排版 破折号 卷曲引号 省略号等 这意味着在我们的 locales xx yml
  • 防止XSS漏洞的措施(比如Twitter前几天的一个)

    就连Twitter这样的知名网站也存在XSS漏洞 我们应该如何预防这种攻击呢 您可以做的第一件事是将您的 cookie 设置为仅 HTTP 这至少可以防止会话 cookie 劫持 就像当您可能是自己网站的管理员时有人窃取您的 cookie
  • 标准 Html.DisplayTextFor() 没有 HTML 编码吗?

    我们目前正在处理 ASP NET MVC 项目之一的一些 XSS 问题 我发现两个问题 第一个问题与我们的请求验证模式有关 攻击者现在可以利用此安全漏洞在我们的数据库中删除一些不良内容 第二个问题是我们如何显示此内容 我们使用 Html D

随机推荐

  • 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的代码 然后我