前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >复习 - XSS

复习 - XSS

作者头像
Naraku
发布2021-07-28 11:27:59
1.3K0
发布2021-07-28 11:27:59
举报
文章被收录于专栏:Naraku的专栏Naraku的专栏

简介

跨站脚本攻击(Cross Site Script)为了避免与层叠样式表CSS混淆,故称XSS。XSS是指攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而将一些代码嵌入到web页面中去,使得别的用户访问也好执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行某些动作或对访问者进行病毒侵害等攻击。反射型和存储型XSS的作用一样,只是用户触发形式不同。

类型

  • 反射型:反射型XSS攻击,又称为非持久型跨站脚本攻击,它是最常见的XSS类型。漏洞产生的原因是攻击者注入的数据反映在响应上,一个典型的非持久型XSS包含一个带XSS攻击向量的链接,即每次攻击需要用户点击。
  • 存储型:存储型XSS又称为持久型跨站点脚本,持久型XSS相比非持久型XSS攻击危害更大。它一般发生在XSS攻击向量(一般指XSS攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。
  • DOM型:从效果上来说也是反射型XSS,其通过修改页面DOM节点而形成XSS。

XSS类型

存储型

反射型

DOM型

数据存储

数据库

URL

URL

输出位置

HTTP响应中

HTTP响应中

动态构造的DOM节点

  • 区别:DOM型XSS代码只由前端的JS处理,然后直接输出到页面,不经过后端处理。而反射型XSS则会经过后端处理后才输出

绕过

  • 大小写绕过
  • 双写绕过
  • 绕过标签黑名单
  • javascript绕过
  • 字符实体
  • 绕过magic_quotes_gpc:针对开启了魔术引号的网站,可通过String.fromCharCode方法将ASCII转换为字符串
  • 绕过字符串的括号:
  • 绕过括号和分号
  • 绕过空格:使用/绕过
  • 使用其他方式执行alert
  • 使用其他字符绕过;

编码

  • URL编码
  • HTML编码
  • 八进制编码

Payload

工具

XSSOR

BeEF

BeEF(Browser Exploitation Framework)是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透测试;BeEF基于Ruby语言编写,支持图形化界面,操作简单。

启动Apache和BeEF

攻击:Current Browser > Commands

靶场

总结

  • 对尖括号进行闭合:标签内事件进行触发弹窗
  • 过滤判断
  • 过滤javascript:使用JS变换绕过,这里必须在浏览器直接执行(利用空白符如水平制表符HT,换行符LF,回车键CR来截断关键字)

level 1

  • URL中在name后插入Payload

level 2

  • 先使用双引号"闭合字符串,再使用</h2>闭合标签,最后插入Payload

level 3

  • 尝试输入单双引号、括号等,发现输入单引号时上面的h2会把输入的字符全部输出,而下面输入框却不会。如输入以下字符,h2标签会输出123'111,而输入框只剩下123
  • 所以此题输出点不在前面的h2标签,而是在输入框input标签。插入Payload点击搜索,然后点击输入框

level 4

  • 和上一题差不多,只是此处换成了双引号"闭合。插入Payload后点击搜索,然后点击输入框

level 5 (javascript协议)

  • 和上一题一样用双引号绕过,但是过滤了onclick,onmousemove等常见事件,主要是把on替换成了o_n<script>替换成<scr_ipt>。这里使用a标签触发javascript,搜索后点击超链接

level 6 (大小写绕过)

  • 大小写过滤,搜索后点击超链接

level 7 (双写绕过)

  • 过滤了hrefscript,可以双写绕过

level 8 (HTML编码)

  • HTML编码绕过,添加链接后点击友情链接

level 9 (JS变换)

  • 经过多次测试,发现如下过滤:

level 10 (隐藏表单)

  • 经过一系列尝试都无法弹窗,于是审查源码,发现有个隐藏的表单
  • 尝试在浏览器中访问各参数,发现只有传入t_sort参数时,对应的value值会变化
  • 这里一开始尝试使用autofocusonfocus自动聚焦触发,但是发现有时候不能触发,或者触发了后会一直弹框而不能正常跳转到下一关
  • 后来使用type属性将该输入框变成button,覆盖掉原有的hidden隐藏属性,并使用onclick事件触发。浏览器传入如下参数后点击按钮即可

level 11 (Referer)

  • 仍然可以传递t_sort,但是绕过双引号"无果后放弃,寻找其它注入点
  • 发现多了一个t_ref,通过URL传递参数无效,后来通过ModHeade插件,尝试在头部添加Referer,发现出现Value值

  • 构造Payload提交,点击按钮后通过

level 12 (UA)

  • 这一题根据t_ua参数和上一题,可以推测出此处需要修改的是User-Agent,同样使用上面的插件和Payload,将Referer修改为User-Agent即可

level 13 (Cookie)

  • 这题参数是t_cook,使用Burp修改Cookie即可,Payload如下:

level 14 (Exif XSS)

  • 引入的网站需要某些访问国外网站软件才能访问。但是访问发现这个网站好像有点奇奇怪怪,随便点一个标签发现全是广告,放弃
  • 另外14关下方的连接跳转有点问题,可手动访问地址:/level15.php?src=1.gif

level 15 (Angular JS)

  • AngularJS的ng-include指令用于包含外部的 HTML 文件,包含的内容将作为指定元素的子节点。
  • URL中传入以下参数,可以看到已经被包含进网页源码中

  • 构造Pyaload

level 16

  • 此题将空格和/都转换成了&nbsp;,使用前面说到的JS变换绕过

level 17 (Flash XSS)

  • Chrome等浏览器需要打开Flash才能看到题目
  • 一开始以为是Flash XSS,但是在测试过滤时,发现直接用空格即可闭合src属性,然后手动添加事件即可。一开始使用onclick事件,但是点击后跳转到一个undefined页面,后使用onmouseover事件即可
  • Payload如下,访问后将鼠标移动到图片上即可弹框
  • 通关后不会自动跳到18关,需点击下方超链接

level 18

  • 同上一关一模一样的解法,有点迷惑

level 19-20 (Flash XSS)

参考

版权属于:Naraku

本文链接:https://cloud.tencent.com/developer/article/1853430

本站所有原创文章均采用 知识共享署名-非商业-禁止演绎4.0国际许可证 。如需转载请务必注明出处并保留原文链接,谢谢~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 类型
  • 绕过
    • 编码
    • Payload
    • 工具
      • XSSOR
        • BeEF
        • 靶场
          • 总结
            • level 1
              • level 2
                • level 3
                  • level 4
                    • level 5 (javascript协议)
                      • level 6 (大小写绕过)
                        • level 7 (双写绕过)
                          • level 8 (HTML编码)
                            • level 9 (JS变换)
                              • level 10 (隐藏表单)
                                • level 11 (Referer)
                                  • level 12 (UA)
                                    • level 13 (Cookie)
                                      • level 14 (Exif XSS)
                                        • level 15 (Angular JS)
                                          • level 16
                                            • level 17 (Flash XSS)
                                              • level 18
                                                • level 19-20 (Flash XSS)
                                                • 参考
                                                相关产品与服务
                                                网站渗透测试
                                                网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
                                                领券
                                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档