Взлом сайта с клипартами

Тема в разделе "Мегафлуд", создана пользователем greatilya, 18 июл 2010.

Статус темы:
Закрыта.
  1. greatilya

    greatilya Создатель

    Регистр.:
    21 май 2009
    Сообщения:
    35
    Симпатии:
    3
    Имеется сайт:
    http://www.inmagine.com/
    У них ОООООчень много клипартов. Все они конечно же платные.
    При регистрации у них дается возможность через флешку посмотреть картику, при этом её можно увеличивать как угодно. (примечание: поскольку флешка доступна даже без регистрации, главное знать путь, то предположу что взломать их можно)
    Рассмотрим взлом на примере этой картинки:
    http://zoom.inmagine.com/zoomv1/zoom.php?filename=rbvs0250221
    Флешку я декомпилировал, вот результат:
    movie 'izoom.swf' {
    // flash 7, total frames: 3, frame rate: 24 fps, 600x500 px, compressed

    frame 1 {
    stop();
    this.onEnterFrame = function () {
    var v3 = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
    this.loader.bar.loader._xscale = v3;
    if (_root.getBytesLoaded() >= _root.getBytesTotal()) {
    delete this.onEnterFrame;
    nextFrame();
    }
    };

    }

    movieClip 7 {
    }

    movieClip 8 {
    }

    movieClip 9 {
    }

    frame 2 {
    stop();
    var path = 'image.php';
    _lockroot = true;
    C_WMIN = 400;
    C_HMIN = 400;
    this.imageMainClip.back_mc._visible = 0;
    myVar = new LoadVars();
    myVar.onLoad = function (success) {
    if (success and this.image != 'false') {
    _global.IMAGE = {};
    _global.IMAGE._url = this.image;
    _global.IMAGE.width = int(this.width);
    _global.IMAGE.height = int(this.height);
    _global.IMAGE.w = _global.IMAGE.width;
    _global.IMAGE.h = _global.IMAGE.height;
    _global.IMAGE.size = this.size;
    _global.k = 1;
    nextFrame();
    }
    };

    myVar.load(path add '?getImageInfo=1' add '&fname=' add _root.fname);
    }

    movieClip 11 {
    }

    movieClip 12 {
    }

    movieClip 13 {
    }

    movieClip 14 {
    }

    button 20 {

    on (release) {
    _root.loadMainImage(_root.path add '?image=' add _global.IMAGE._url add '&fname=' add _root.fname);
    }
    }

    movieClip 21 {
    }

    movieClip 23 {
    }

    movieClip 24 {
    }

    movieClip 25 {
    }

    movieClip 26 {
    }

    frame 3 {
    function applyZoom(x, y, w, h) {
    var v6 = w;
    var v4 = h;
    var v7 = 1;
    if (w > h) {
    if (w < C_WMIN) {
    v7 = C_WMIN / w;
    v6 = C_WMIN;
    v4 = h * v7;
    }
    } else {
    if (h < C_HMIN) {
    v7 = C_HMIN / h;
    v4 = C_HMIN;
    v6 = w * v7;
    }
    }
    var v14 = _global.IMAGE.width / _global.IMAGE.w;
    var v9 = v6;
    var v10 = v4;
    _root.imageMainClip.sliderContainerMc.adjustSize(v9, v10, loadSubClip, x, y, w, h, _root.imageMainClip.jpg_c.cont_mc._width, v6, v4);
    var v5 = IMAGE.w / w;
    var v13 = IMAGE.w - v9;
    var v12 = IMAGE.h - v10;
    _root.imageMainClip.jpg_c.cont_mc._x -= x * v5;
    _root.imageMainClip.jpg_c.cont_mc._y -= y * v5;
    var v11 = _root.imageMainClip.jpg_c.cont_mc._width;
    _root.imageMainClip.jpg_c.cont_mc._xscale *= v5;
    _root.imageMainClip.jpg_c.cont_mc._yscale *= v5;
    var v17 = _root.imageMainClip.jpg_c.cont_mc._width;
    _root.imageMainClip.loader._visible = true;
    _root.imageMainClip.back_mc._visible = false;
    }

    function invalidateListener() {
    Mouse.removeListener(mlist);
    }

    function activateListener() {
    mlist = new Object();
    mlist.onMouseDown = function () {
    var v3 = _root.imageMainClip.the_mask.getBounds(_root);
    if (_root._xmouse < v3.xMin or _root._ymouse < v3.yMin or _root._xmouse > v3.xMax or _root._ymouse > v3.yMax) {
    return undefined;
    }
    this.startDraw();
    };

    mlist.onMouseUp = function () {
    this.stopDraw();
    };

    mlist.stopDraw = function () {
    if (drawbox._width <= 0) {
    return undefined;
    }
    this.onMouseMove = undefined;
    var v3 = _root.drawbox.getBounds(_root.imageMainClip.jpg_c);
    var v7 = _root.drawbox._width;
    var v4 = _root.drawbox._height;
    var v6 = v3.xMin;
    var v5 = v3.yMin;
    drawbox.removeMovieClip();
    _root.invalidateListener();
    _root.applyZoom(v6, v5, v7, v4);
    };

    mlist.startDraw = function () {
    px = _root._xmouse;
    py = _root._ymouse;
    _root.createEmptyMovieClip('drawbox', _root.getNextHighestDepth());
    drawbox._x = px;
    drawbox._y = py;
    this.onMouseMove = function () {
    var px = _root._xmouse;
    var py = _root._ymouse;
    var gb = _root.imageMainClip.the_mask.getBounds(_root);
    if (_root._xmouse < gb.xMin or _root._ymouse < gb.yMin or _root._xmouse > gb.xMax or _root._ymouse > gb.yMax) {
    return undefined;
    }
    drawbox.clear();
    with (drawbox) {
    lineStyle(1, 102, 100);
    beginFill(102, 20);
    moveTo(0, 0);
    lineTo(px - drawbox._x, 0);
    lineTo(px - drawbox._x, py - drawbox._y);
    lineTo(0, py - drawbox._y);
    lineTo(0, 0);
    endFill();
    }
    updateAfterEvent();
    };

    };

    Mouse.addListener(mlist);
    }

    }

    frame 3 {
    function loadSubClip() {
    arguments = arguments[0];
    var v9;
    var v7;
    var v10;
    var v8;
    var v6;
    var v4;
    v9 = arguments[0];
    v7 = arguments[1];
    v10 = arguments[2];
    v8 = arguments[3];
    size = arguments[4];
    v6 = arguments[5];
    v4 = arguments[6];
    var v5 = path add '?image=' add _global.IMAGE._url add '&x=' add v9 add '&y=' add v7 add '&w=' add v6 add '&h=' add v4 add '&sizex=' add v10 add '&sizey=' add v8 add '&original=' add size add '&fname=' add _root.fname;
    loadMainImage(v5);
    }

    function loadMainImage(thePath) {
    _root.imageMainClip.loader.bar.loader._xscale = 0;
    _root.invalidateListener();
    this.imageMainClip.loader._visible = true;
    this.imageMainClip.back_mc._visible = false;
    var v5 = new MovieClipLoader();
    var v4 = {};
    v4.onLoadProgress = function (obj) {
    this.perc = int((obj.getBytesLoaded() / obj.getBytesTotal()) * 100);
    if (this.perc > 0) {
    _root.imageMainClip.loader.bar.loader._xscale = this.perc;
    }
    };

    v4.onLoadComplete = function (obj) {
    obj._visible = 0;
    obj._parent.onEnterFrame = function () {
    if (this.cont_mc._width > 4 && this.cont_mc.getBytesLoaded() >= this.cont_mc.getBytesTotal()) {
    delete this.onEnterFrame;
    this.cont_mc._xscale = 100;
    this.cont_mc._yscale = 100;
    this.cont_mc._x = 0;
    this.cont_mc._y = 0;
    _global.IMAGE.w = this.cont_mc._width;
    _global.IMAGE.h = this.cont_mc._height;
    this._parent.sliderContainerMc.adjustSize(this.cont_mc._width, this.cont_mc._height, fadeInImage);
    }
    };

    };

    v5.addListener(v4);
    this.imageMainClip.jpg_c.cont_mc._name = 'old_cont_mc' + _global.k;
    this.imageMainClip.jpg_c.createEmptyMovieClip('cont_mc', _global.k);
    v5.loadClip(thePath, this.imageMainClip.jpg_c.cont_mc);
    ++_global.k;
    trace(thePath);
    }

    function fadeInImage() {
    var v4 = _root.imageMainClip.sliderContainerMc.grey_mc.getBounds(_root.imageMainClip);
    _root.imageMainClip.the_mask._x = v4.xMin;
    _root.imageMainClip.the_mask._y = v4.yMin;
    _root.imageMainClip.jpg_c._x = _root.imageMainClip.the_mask._x;
    _root.imageMainClip.jpg_c._y = _root.imageMainClip.the_mask._y;
    _root.imageMainClip.the_mask._width = _root.imageMainClip.jpg_c.cont_mc._width;
    _root.imageMainClip.the_mask._height = _root.imageMainClip.jpg_c.cont_mc._height;
    _root.imageMainClip.jpg_c.cont_mc._visible = true;
    _root.imageMainClip.jpg_c.cont_mc._alpha = 0;
    _root.imageMainClip.jpg_c.onEnterFrame = function () {
    if (this.cont_mc._alpha >= 100) {
    this.cont_mc._alpha = 100;
    this._parent.loader._visible = false;
    this._parent.back_mc._visible = true;
    if (this.cont_mc._url == path) {
    this._parent.back_mc.btn.enabled = false;
    } else {
    this._parent.back_mc.btn.enabled = true;
    }
    delete this.onEnterFrame;
    _root.imageMainClip.loader.bar.loader._xscale = 0;
    _root.activateListener();
    return false;
    }
    this['old_cont_mc' + (_global.k - 1)]._alpha -= 5;
    this.cont_mc._alpha += 5;
    };

    }

    MovieClip.prototype.adjustSize = function (w, h, handler) {
    var args = arguments.slice(3);
    this.__started = false;
    this.__dx = 0;
    this.__dy = 0;
    this.onEnterFrame = function () {
    if (Math.abs(this.__dx) < 0.1 and Math.abs(this.__dy) < 0.1 and this.__started != false) {
    this.grey_mc._width = w;
    this.grey_mc._height = h;
    this.bianco._width = this.grey_mc._width + 20;
    this.bianco._height = this.grey_mc._height + 20;
    delete this.onEnterFrame;
    handler(args);
    return false;
    }
    this.__started = true;
    this.__dx = (this.__dx + (w - this.grey_mc._width) / 1.6) / 1.8;
    this.__dy = (this.__dy + (h - this.grey_mc._height) / 2.4) / 2.2;
    this.grey_mc._width += this.__dx;
    this.grey_mc._height += this.__dy;
    this.bianco._width = this.grey_mc._width + 20;
    this.bianco._height = this.grey_mc._height + 20;
    this.sfondo._width = this.grey_mc._width + 20;
    this.sfondo._height = this.grey_mc._height + 20;
    var v3 = this.grey_mc.getBounds(_root.imageMainClip);
    _root.imageMainClip.the_mask._x = v3.xMin;
    _root.imageMainClip.the_mask._y = v3.yMin;
    _root.imageMainClip.jpg_c._x = _root.imageMainClip.the_mask._x;
    _root.imageMainClip.jpg_c._y = _root.imageMainClip.the_mask._y;
    _root.imageMainClip.the_mask._width = this.grey_mc._width;
    _root.imageMainClip.the_mask._height = this.grey_mc._height;
    _root.imageMainClip.loader._x = Math.floor(v3.xMin - 10);
    _root.imageMainClip.loader._y = Math.floor(v3.yMax + 10);
    _root.imageMainClip.back_mc._x = Math.floor(v3.xMin - 20);
    _root.imageMainClip.back_mc._y = Math.floor(v3.yMax + 12);
    };

    };

    loadMainImage(path add '?image=' add _global.IMAGE._url add '&fname=' add _root.fname);
    im_info.text = 'Original image: ' add IMAGE._url.substr(IMAGE._url.lastIndexOf('/') + 1) add '\nimage info: width: ' add IMAGE.width add ', height: ' add IMAGE.height add ', size: ' add int((IMAGE.size / 1024) * 100) / 100 add ' Kb';
    im_info2.text = im_info.text;
    }
    }
    еще узнал адрес скрипта который выдает информацию о картинке:
    http://zoom.inmagine.com/zoomv1/image.php?getImageInfo=1&fname=rbvs0250221

    Пока больше ничего не придумал. Может у кого-то есть идеи как дальше получить путь к картинке?
     
  2. Agler

    Agler Постоялец

    Регистр.:
    17 авг 2008
    Сообщения:
    94
    Симпатии:
    13
    Снифать браузерные пакеты уже запретили? под тот же файрфокс таких снифферов куча ...
     
  3. greatilya

    greatilya Создатель

    Регистр.:
    21 май 2009
    Сообщения:
    35
    Симпатии:
    3
    Попробовал посмотреть снифером, никаких файлов в открытом виде не передается. Видимо чисто данные передаются... либо еще как то... вобщем не такая простая затея, вероятно её стоит оставить...
     
Статус темы:
Закрыта.