“alert(1) to win” writeup

地址:http://escape.alf.nu/

level 0: 注意补全,");alert(1)//
level 1: 通过添加反斜线使用来转义的反斜线变为字符,\");alert(1)//
level 2: 双引号,反斜杠都被转义了……没想到办法,就搜了搜,原来可以直接不管双引号而闭合<script>标签,可能优先级不同吧,</script><script>alert(1)//
level 3: JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串。<a> 标签的href属性可执行js代码,尝试补全双引号,插入自己的js代码,直接插入会被转义,使用URLencode可绕过,%22),alert(1)(%22
level 4: 这个题需要仔细地观察正则式,注意到 " 仅仅替换了一次,<a>标签中不能有空白符比较难用,而 <img> 标签中的第二个匹配文本允许除换行符以外的任意字符,这个就比较好用了,注意闭合引号就好了,[[1|2"" onload=alert(1) "]]
level 5: 这是第4题的升级版," 全部被替换了,因此第4题的方法行不通了,对"进行编码也行不通,百思不得其解啊,无奈看了看评论,得到解答 [[1|http://onload=‘alert(1)‘]],原来是同时利用 <img> 标签跟 <a> 标签啊!看看输出的源码就会发现,成功绕过了 "
level 6: 以 # 作为分隔符输入两个参数,如果 # 前面是 Element 结果就是创建一个新的节点,具体什么节点由 # 后面指定,而如果 # 前面是 Comment,那么 # 后面就变成注释内容,闭合注释符号然后写入自己的代码即可, Comment#><script>alert(1)</script><!
level 7: 仍然是以 # 作为分隔符输入两个参数,对第一个参数做正则匹配,注意匹配的字符中包括单引号 ,这是本题的关键,使用单引号和注释符号来隔离 json 字符串中碍事的字符,就可以构造出来了,‘#‘;alert(1)//
level 8: 使用 Data URI,插入一个 html 文档,</script><script src=data:text/html,%61%6c%65%72%74(1)>

目前只做到 level 8,未完待续

?

时间: 2025-01-31 07:33:25

“alert(1) to win” writeup的相关文章

【alert(1) to win】不完全攻略

alert(1) to win 一个练习XSS的平台,地址:https://alf.nu/alert1 Warmup(14) 给出了一段JavaScript代码 function escape(s) { return '<script>console.log("'+s+'");</script>'; } 对s没有任何校验,payload为 ");alert(1);(" 或者 ");alert(1);// Adobe (15) 代码如

alert(1) to win 9

function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { return { '<': '<', '>': '>', '&': '&', '"': '"', "'": ''' }[x] || x; }); } function expandTemplate(template, args) { return template

alert(1) to win 4

function escape(s) { var url = 'javascript:console.log(' + JSON.stringify(s) + ')'; console.log(url); var a = document.createElement('a'); a.href = url; document.body.appendChild(a); a.click(); } JSON.stringify()用于从一个对象解析出字符串. 试输入:123 只要闭合第一个双引号就 ok

hacking 学习站

练习区 一个英文平台的CTF(难度较高, 分类较全):http://www.ringzer0team.com/HackGame2是由blackbap论坛开发的一套在线黑客闯关游戏:http://hackgame.blackbap.org/谷歌XSS漏洞测试游戏:http://xss-game.appspot.com(需科学上网)黑客游戏,模拟现实的:http://www.hackerforever.com/ 综合 http://wargame.kr/西普学院(点击此处查看答案):http://w

Ext JS学习第六天 Ext_window组件(三)

此文用来记录学习笔记: 今天再来一个例子巩固一下学习的window: –例2: 在window中添加子组件,并讲解常用查找组件的方式: •重点分析:该实例主要针对于组件的查找进行详细的讲解,在以后的应用开发中,同学们应该学会各种方式去查找所需要的组件,不要拘泥于某种特定形式,这样会给开发思路带来很多好处. –ownerCt –up/down方法 –Ext.getCmp方法 附上栗子代码1 Ext.onReady(function(){ //ex002 : 在组件中添加子组件 ,并进行一系列针对于

ExtJs window(三)添加子组件,查找组件

一.通过items添加子组件 1.new Ext.button.Button创建组件:2.也可以通过通过别名xtype创建组件 二.查找组件 1.组件都有up,down方法,表示向上.向下查找,需要参数为组件xtype或者选择器  alert(btn.up('window').title); 2.最常用的查找方式 alert(Ext.getCmp('mywin').title); Ext.onReady(function(){ //在组件上,添加子组件:并进行针对组件的查找等操作 //通过ite

ExtJS + fileuploadfield上传文件代码

后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=RequestMethod.POST) public void uploadFile(@RequestParam(value="file",required=true) MultipartFile file ,HttpServletResponse response) { ModelMap model

JavaScript : 零基础打造自己的jquery类库

写作不易,转载请注明出处,谢谢. 文章类别:Javascript基础(面向初学者) 前言 在之前的章节中,我们已经不依赖jQuery,单纯地用JavaScript封装了很多方法,这个时候,你一定会想,这些经常使用的方法能不能单独整理成一个js文件呢? 当然可以,封装本来就是干这个用的.放在一个单独js文件里固然不错,其实我们也可以单独整一个js类库,一方面可以锻炼一下自己封装方法的能力,另一方面,也可以将自己学到的东西做一个整理. 出于这个目的,本文将介绍如何封装一个简单的js类库.(当然,只是

ajax局部更新

js //点击启用 $(".status").on("click",function(){ var id = $(this).attr("statusId"); var customName = $(this).attr("customName"); var customStatus = $(this).attr("value"); var statusId = $(this).attr("sta