【20171027早】alert(1) to win 第9,10,11,12题

2021-05-03 15:27

阅读:350

标签:mos   ntb   tca   gtd   uml   fbo   tco   idv   jea   

  人在江湖,不服就干!

  第9题:

  

 1 function escape(s) {
 2   function htmlEscape(s) {
 3     return s.replace(/./g, function(x) {
 4        return { ‘‘: ‘>‘, ‘&‘: ‘&‘, ‘"‘: ‘"‘, "‘": ‘'‘ }[x] || x;       
 5      });
 6   }
 7 
 8   function expandTemplate(template, args) {
 9     return template.replace(
10         /{(\w+)}/g, 
11         function(_, n) { 
12            return htmlEscape(args[n]);
13          });
14   }
15   
16   return expandTemplate(
17     "                                                \n18       

Hello, !

\n
19 20 var v = document.getElementById(‘name‘); \n21 v.innerHTML = ‘{name}‘; \n22 \n23 ", 24 { name : s } 25 ); 26 }

  分析:

  对输入中的 & " ‘ 等符合进行了html编码转换,所以无法使用这些字符

  TRY:

  老黑也是通过看答案才知道的答案,输入 \x3csvg  onload=alert(1) 会提示成功,但是我并没有在自己的html页面上重显弹窗,这个payload是用\x3c代替htmlEscape

的替换作用。

 

  第10题:

  题目:

 

1 function escape(s) {
2   s = JSON.stringify(s).replace(/);
3 
4   return;
5 }

  分析:

  过滤掉

  第一次:

  被过滤后,自然形成

 

  第11题:

  题目:

 

1 function escape(s) {
2   // Pass inn "callback#userdata"
3   var thing = s.split(/#/); 
4 
5   if (!/^[a-zA-Z\[\]‘]*$/.test(thing[0])) return ‘Invalid callback‘;
6   var obj = {‘userdata‘: thing[1] };
7   var json = JSON.stringify(obj).replace(/\//g, ‘\\/‘);
8   return "";
9 }

  分析:

  这题简单,用两个单引号令双引号失效,然后写入alert(1),在用

上一篇:wpf布局笔记

下一篇:c# 7.0 学习笔记


评论


亲,登录后才可以留言!