【20171027中】alert(1) to win 第13,14,15,16题

2021-05-03 18:26

阅读:405

标签:ram   全局对象   deb   标签   logs   参考   on()   state   image   

  第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.am won‘t count.

  s = ‘

  分析:

  这题老黑没解出来,只知道答案是name=‘youWon‘,根据网上的答案可知每个frame都有一个全局对象window,而name是window的成员属性,存储窗口的名称。老黑猜测输入name=‘youWon‘会触发alert(1),但是实验网址没有提示。

   第14题

  题目:

 

 1 function escape(s) {
 2   function json(s) { return JSON.stringify(s).replace(/\//g, ‘\\/‘); }
 3   function html(s) { return s.replace(/["&]/g, function(s) {
 4                         return ‘‘ + s.charCodeAt(0) + ‘;‘; }); }
 5 
 6   return (
 7\n\n‘ +
10\n‘ +
11     ‘  URL: ‘ + html(s) + ‘\n\n‘ +
12\n‘ +
1317   );
18 }

  分析:

  触发alert(1)的地方在第11行,所以要构造在的payload。

  TRY:

  第一次:"alert(1);"   失败!

  第二次:查阅资料,知道html5的"script data escaped state"特性,使用 4 URL: alert(1);<!--<script>; 5 6 7

if (!/^http:.*/.test(url)) console.log("Bad url: " + url); 9 else new Image().src = url; 10

   目前实际有效的代码是:

 

1 

 但是还是有问题,第6行的

  第三次:payload=“alert(1);/* 4 URL: alert(1);/*<!--<script>*/if(/a//* 5 6 7 8 if (!/^http:.*/.test(url)) console.log("Bad url: " + url); 9 else new Image().src = url; 10

  去除无效代码如下:

 

1 

 PS:以上是老黑自己的理解,仅供参考。

 

  第15,16题,我并不理解答案,等以后知识足够的时候,再攻克这两个难题。网上解释的链接,你过来啊

  虽然今天下午解决了两个题,但是也浪费了太多时间,效率太低,而且自制力不够,注意力不够集中,今天的表现很不满意。

 

【20171027中】alert(1) to win 第13,14,15,16题

标签:ram   全局对象   deb   标签   logs   参考   on()   state   image   

原文地址:http://www.cnblogs.com/heijuelou/p/7744813.html


评论


亲,登录后才可以留言!