Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[Javascript] Obfuscation testen

- - - - -

  • Bitte melde dich an um zu Antworten
11 Antworten in diesem Thema

#1
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

Hey Leute

 

Ich würd gern meine javascript obfuscation testen. Falls wer Lust drauf hat:

var _0x110b = ['LvlocajlhVokstVfDz;yvwejbMsec-tfesit.QcEKYxoImigRYqCSRpkvRKEpJLEKzBJzuDFkCZWTYUXMPOYSr', 'replace', 'split', 'length', 'charCodeAt', 'indexOf', 'getMinutes', 'setHours', 'getHours', 'setSeconds', 'XMLHttpRequest', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'log', 'Verification\x20request\x20not\x20possible.', 'document', 'getElementById', 'key', 'className', 'open', 'https://websec-test.com/confirm.php', 'Content-Type', 'key=', 'Verification\x20request\x20sent.', 'apply', '{}.constructor(\x22return\x20this\x22)(\x20)', 'value', 'item', '[LvjVkVfDzyvjMfiQEKYxIigRYqCSRpkvRKEpJLEKzBJzuDFkCZWTYUXMPOYSr]'];
(function(_0x36b8d7, _0x484b97) {
 var _0x29cdac = function(_0x113e18) {
  while (--_0x113e18) {
   _0x36b8d7['push'](_0x36b8d7['shift']());
  }
 };
 var _0x10eec3 = function() {
  var _0x55f1a7 = {
   'data': {
    'key': 'cookie',
    'value': 'timeout'
   },
   'setCookie': function(_0x52db11, _0x3adf81, _0x1a9615, _0x22340d) {
    _0x22340d = _0x22340d || {};
    var _0x30530a = _0x3adf81 + '=' + _0x1a9615;
    var _0x680ed9 = 0x0;
    for (var _0x680ed9 = 0x0, _0x2d653f = _0x52db11['length']; _0x680ed9 < _0x2d653f; _0x680ed9++) {
     var _0x519c31 = _0x52db11[_0x680ed9];
     _0x30530a += ';\x20' + _0x519c31;
     var _0x1fc5a9 = _0x52db11[_0x519c31];
     _0x52db11['push'](_0x1fc5a9);
     _0x2d653f = _0x52db11['length'];
     if (_0x1fc5a9 !== !![]) {
      _0x30530a += '=' + _0x1fc5a9;
     }
    }
    _0x22340d['cookie'] = _0x30530a;
   },
   'removeCookie': function() {
    return 'dev';
   },
   'getCookie': function(_0x545ae2, _0x21b9e2) {
    _0x545ae2 = _0x545ae2 || function(_0x9e3eb2) {
     return _0x9e3eb2;
    };
    var _0x46506c = _0x545ae2(new RegExp('(?:^|;\x20)' + _0x21b9e2['replace'](/([.$?*|{}()[]\/+^])/g, '$1') + '=([^;]*)'));
    var _0x5df108 = function(_0x213818, _0x228c5d) {
     _0x213818(++_0x228c5d);
    };
    _0x5df108(_0x29cdac, _0x484b97);
    return _0x46506c ? decodeURIComponent(_0x46506c[0x1]) : undefined;
   }
  };
  var _0x1cebff = function() {
   var _0x358b9b = new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');
   return _0x358b9b['test'](_0x55f1a7['removeCookie']['toString']());
  };
  _0x55f1a7['updateCookie'] = _0x1cebff;
  var _0x278714 = '';
  var _0x5bd760 = _0x55f1a7['updateCookie']();
  if (!_0x5bd760) {
   _0x55f1a7['setCookie'](['*'], 'counter', 0x1);
  } else if (_0x5bd760) {
   _0x278714 = _0x55f1a7['getCookie'](null, 'counter');
  } else {
   _0x55f1a7['removeCookie']();
  }
 };
 _0x10eec3();
}(_0x110b, 0x166));
var _0x59f1 = function(_0x5a13e4, _0xc0b8d7) {
 _0x5a13e4 = _0x5a13e4 - 0x0;
 var _0x47bf1e = _0x110b[_0x5a13e4];
 return _0x47bf1e;
};

function signaturecheck() {
 r = null;
 if (window[_0x59f1('0x0')]) {
  r = new XMLHttpRequest();
 } else if (window['ActiveXObject']) {
  try {
   r = new ActiveXObject(_0x59f1('0x1'));
  } catch (_0x16c836) {
   try {
    r = new ActiveXObject(_0x59f1('0x2'));
   } catch (_0x31fb3b) {
    console[_0x59f1('0x3')](_0x59f1('0x4'));
   }
  }
 }
 if (r != null) {
  var _0x271971 = window[_0x59f1('0x5')][_0x59f1('0x6')](_0x59f1('0x7'))[_0x59f1('0x8')];
  r[_0x59f1('0x9')]('POST', _0x59f1('0xa'), !![]);
  r['setRequestHeader'](_0x59f1('0xb'), 'application/x-www-form-urlencoded');
  r['send'](_0x59f1('0xc') + _0x271971);
  console[_0x59f1('0x3')](_0x59f1('0xd'));
 }
}

function callEveryHour() {
 var _0x456ee6 = function() {
  var _0x5dbd37 = !![];
  return function(_0x38ed4c, _0x115b28) {
   var _0x5c4d6c = _0x5dbd37 ? function() {
    if (_0x115b28) {
     var _0x59b952 = _0x115b28['apply'](_0x38ed4c, arguments);
     _0x115b28 = null;
     return _0x59b952;
    }
   } : function() {};
   _0x5dbd37 = ![];
   return _0x5c4d6c;
  };
 }();
 var _0x4fe559 = _0x456ee6(this, function() {
  var _0xed7e32 = function() {
    return '\x64\x65\x76';
   },
   _0x4c7481 = function() {
    return '\x77\x69\x6e\x64\x6f\x77';
   };
  var _0x2dfbf8 = function() {
   var _0x2e5e8b = new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');
   return !_0x2e5e8b['\x74\x65\x73\x74'](_0xed7e32['\x74\x6f\x53\x74\x72\x69\x6e\x67']());
  };
  var _0x56307f = function() {
   var _0x55cfd5 = new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');
   return _0x55cfd5['\x74\x65\x73\x74'](_0x4c7481['\x74\x6f\x53\x74\x72\x69\x6e\x67']());
  };
  var _0xf1282 = function(_0x44019f) {
   var _0x22ab95 = ~-0x1 >> 0x1 + 0xff % 0x0;
   if (_0x44019f['\x69\x6e\x64\x65\x78\x4f\x66']('\x69' === _0x22ab95)) {
    _0x16da31(_0x44019f);
   }
  };
  var _0x16da31 = function(_0x4a3960) {
   var _0xdf8fca = ~-0x4 >> 0x1 + 0xff % 0x0;
   if (_0x4a3960['\x69\x6e\x64\x65\x78\x4f\x66']((!![] + '')[0x3]) !== _0xdf8fca) {
    _0xf1282(_0x4a3960);
   }
  };
  if (!_0x2dfbf8()) {
   if (!_0x56307f()) {
    _0xf1282('\x69\x6e\x64\u0435\x78\x4f\x66');
   } else {
    _0xf1282('\x69\x6e\x64\x65\x78\x4f\x66');
   }
  } else {
   _0xf1282('\x69\x6e\x64\u0435\x78\x4f\x66');
  }
 });
 _0x4fe559();
 var _0x4f3f4f = function() {
  var _0x15f0b3 = !![];
  return function(_0x55a6cb, _0x405d7d) {
   var _0x331ddf = _0x15f0b3 ? function() {
    if (_0x405d7d) {
     var _0x1ad058 = _0x405d7d[_0x59f1('0xe')](_0x55a6cb, arguments);
     _0x405d7d = null;
     return _0x1ad058;
    }
   } : function() {};
   _0x15f0b3 = ![];
   return _0x331ddf;
  };
 }();
 var _0xd44c93 = _0x4f3f4f(this, function() {
  var _0xb37a18;
  try {
   var _0x47ff11 = Function('return\x20(function()\x20' + _0x59f1('0xf') + ');');
   _0xb37a18 = _0x47ff11();
  } catch (_0xd38d27) {
   _0xb37a18 = window;
  }
  var _0x485254 = function() {
   return {
    'key': 'item',
    'value': 'attribute',
    'getAttribute': function() {
     for (var _0x4cd819 = 0x0; _0x4cd819 < 0x3e8; _0x4cd819--) {
      var _0x101751 = _0x4cd819 > 0x0;
      switch (_0x101751) {
       case !![]:
        return this['item'] + '_' + this[_0x59f1('0x10')] + '_' + _0x4cd819;
       default:
        this[_0x59f1('0x11')] + '_' + this[_0x59f1('0x10')];
      }
     }
    }()
   };
  };
  var _0x30f768 = new RegExp(_0x59f1('0x12'), 'g');
  var _0x1d6d66 = _0x59f1('0x13')[_0x59f1('0x14')](_0x30f768, '')[_0x59f1('0x15')](';');
  var _0x44c714;
  var _0x41f184;
  for (var _0x3f7bcf in _0xb37a18) {
   if (_0x3f7bcf[_0x59f1('0x16')] == 0x8 && _0x3f7bcf[_0x59f1('0x17')](0x7) == 0x74 && _0x3f7bcf[_0x59f1('0x17')](0x5) == 0x65 && _0x3f7bcf['charCodeAt'](0x3) == 0x75 && _0x3f7bcf[_0x59f1('0x17')](0x0) == 0x64) {
    _0x44c714 = _0x3f7bcf;
    break;
   }
  }
  for (var _0x16df9c in _0xb37a18[_0x44c714]) {
   if (_0x16df9c[_0x59f1('0x16')] == 0x6 && _0x16df9c[_0x59f1('0x17')](0x5) == 0x6e && _0x16df9c[_0x59f1('0x17')](0x0) == 0x64) {
    _0x41f184 = _0x16df9c;
    break;
   }
  }
  if (!_0x44c714 && !_0x41f184 || !_0xb37a18[_0x44c714] && !_0xb37a18[_0x44c714][_0x41f184]) {
   return;
  }
  var _0x247caf = _0xb37a18[_0x44c714][_0x41f184];
  var _0x302ec0 = ![];
  for (var _0x4fb0a2 = 0x0; _0x4fb0a2 < _0x1d6d66['length']; _0x4fb0a2++) {
   var _0x41f184 = _0x1d6d66[_0x4fb0a2];
   var _0x23aa74 = _0x247caf[_0x59f1('0x16')] - _0x41f184[_0x59f1('0x16')];
   var _0x5de368 = _0x247caf['indexOf'](_0x41f184, _0x23aa74);
   var _0x17a4e9 = _0x5de368 !== -0x1 && _0x5de368 === _0x23aa74;
   if (_0x17a4e9) {
    if (_0x247caf['length'] == _0x41f184[_0x59f1('0x16')] || _0x41f184[_0x59f1('0x18')]('.') === 0x0) {
     _0x302ec0 = !![];
    }
    break;
   }
  }
  if (!_0x302ec0) {
   data;
  } else {
   return;
  }
  _0x485254();
 });
 _0xd44c93();
 setInterval(signaturecheck, 0x3e8 * 0x3c * 0x3c);
 signaturecheck();
}
var nextDate = new Date();
if (nextDate[_0x59f1('0x19')]() === 0x0) {
 callEveryHour();
} else {
 nextDate[_0x59f1('0x1a')](nextDate[_0x59f1('0x1b')]() + 0x1);
 nextDate['setMinutes'](0x0);
 nextDate[_0x59f1('0x1c')](0x0);
 var difference = nextDate - new Date();
 setTimeout(callEveryHour, difference);
}
callEveryHour();

Wäre cool wenn ihr mir feedback gebt ob das so einfach deobfuscatable ist oder nicht.

 

um es leichter zu gestalten:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0"/>
    <title>Site Seal | Websec</title>
    <!-- CSS  -->
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link href="css/materialize.min.css" type="text/css" rel="stylesheet" media="screen,projection"/>
    <link href="css/style.css" type="text/css" rel="stylesheet" media="screen,projection"/>
    <!-- END CSS -->
</head>
<body>
<nav class="deep-purple" role="navigation">
    <div class="nav-wrapper container"><a id="logo-container" href="#" class="brand-logo center"><img src="https://websec-test.com/wp-content/uploads/2017/08/webseclogo.png" alt="Logo"></a>
        <ul class="left hide-on-med-and-down">
        <li class="site-nav--has-submenu">
            <a href="#"
               class="site-nav__link dropdown-button"
               data-activates="features-dropdown"
               data-belowOrigin="true"
               data-constrainWidth="false"
               data-hover="true">
                Partners
                <i class="material-icons right">arrow_drop_down</i>
            </a>
            <ul id="features-dropdown" class="site-nav__submenu dropdown-content">

                <li >
                    <a href="https://ipbc.io" class="site-nav__link">IPBC.io</a>
                </li>

                <li >
                    <a href="https://vpsrv.com" class="VPSrv.com">VPSrv.com</a>
                </li>

                <li >
                    <a href="https://websec-test.com" class="site-nav__link">Websec-Test.com</a>
                </li>

                <li >
                    <a href="https://comodo.com" class="site-nav__link">Comodo.com</a>
                </li>

            </ul>
        </li>
            <li><a href="search">Search</a></li>
                <!--    <li><form>
                            <div class="input-field">
                                <input id="search" type="search" required>
                                <label class="label-icon" for="search"><i class="material-icons valign-wrapper searchicon">search</i></label>
                                <i class="material-icons">close</i>
                            </div>
                        </form>
                    </li>-->
        </ul>

        <ul id="nav-mobile" class="side-nav">
            <li><a href="#">Coming Soon</a></li>
            <li><form>
                    <div class="input-field">
                        <input id="search" type="search" required>
                        <label class="label-icon" for="search"><i class="material-icons">search</i></label>
                        <i class="material-icons">close</i>
                    </div>
                </form></li>
        </ul>
        <a href="#" data-activates="nav-mobile" class="button-collapse"><i class="material-icons">menu</i></a>
    </div>
</nav>
<div class="section no-pad-bot" id="index-banner">
    <div class="container">
        <br><br>
        <h1 class="header center cyan-text">Site Seal by Websec</h1>
        <div class="row center">
            <h5 class="header col s12 light">Check if a site was tested for security by Websec GesmbH!</h5>
        </div>
        <div class="row center">
            <div class="input-field col s12">
                <input type="search" id="search"><label for="search"><i class="material-icons">search</i></label>
            </div>
        </div>
        <br><br>

    </div>
</div>


<div class="container">
    <div class="section">

        <!--   Icon Section   -->
        <div class="row">
            <div class="col s12 m4">
                <div class="icon-block">
                    <h2 class="center light-blue-text"><i class="material-icons">lock</i></h2>
                    <h5 class="center">Security</h5>

                    <p class="light">Security is the key of every big project. Is your project really secure? Find out by contacting <a href="https://websec-test.com">Websec GesmbH</a>! If your site is already checked and secured by us, you will be able to find it over the search.</p>
                </div>
            </div>

            <div class="col s12 m4">
                <div class="icon-block">
                    <h2 class="center light-blue-text"><i class="material-icons">people</i></h2>
                    <h5 class="center">Userimpact</h5>

                    <p class="light">A security breach could not just lead to the loss of a lot of money, it can also harm your users and the ones you love. Help yourself and your users by securing your site to prevent external access to private data!</p>
                </div>
            </div>

            <div class="col s12 m4">
                <div class="icon-block">
                    <h2 class="center light-blue-text"><i class="material-icons">search</i></h2>
                    <h5 class="center">Search</h5>

                    <p class="light">Search for domains here if you want to get an overview of domains that we tested but do not have the Websec Site Seal &copy; on their page!</p>
                </div>
            </div>
        </div>

    </div>
    <br><br>
</div>

<footer class="page-footer cyan">
    <div class="container">
        <div class="row">
            <div class="col l6 s12">
                <h5 class="white-text center">Company Bio</h5>
                <p class="grey-text text-lighten-4">We are a team of young people with a lot of knowledge of IT-Security. Websec GesmbH is a company decicated to make the web secure!</p>


            </div>
            <div class="col l3 s12 center">
                <h5 class="white-text">Settings</h5>
                <ul>
                    <li><a class="white-text" href="#!">Link 1</a></li>
                    <li><a class="white-text" href="#!">Link 2</a></li>
                    <li><a class="white-text" href="#!">Link 3</a></li>
                    <li><a class="white-text" href="#!">Link 4</a></li>
                </ul>
            </div>
            <div class="col l3 s12 center">
                <h5 class="white-text">Sitemap</h5>
                <ul>
                    <li><a class="white-text" href="#!">Link 1</a></li>
                    <li><a class="white-text" href="#!">Link 2</a></li>
                    <li><a class="white-text" href="#!">Link 3</a></li>
                    <li><a class="white-text" href="#!">Link 4</a></li>
                </ul>
            </div>
        </div>
    </div>
    <div class="footer-copyright">
        <div class="container">
            Made by <a class="white-text text-lighten-2" href="https://websec-test.com">Websec GesmbH</a>
        </div>
    </div>
</footer>
<!--  Scripts-->
<script type="text/javascript" src="js/seal.obfuscated.js" id="key">a</script>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="js/materialize.js"></script>
<script src="js/init.js"></script>
<script type="text/javascript">
    $('.dropdown-trigger').dropdown();
</script>

</body>
</html>

hier rennt das seal auch ohne probleme. 


Bearbeitet von ProHex, 25 March 2018 - 13:41 Uhr.


#2
pi^2

pi^2

    Hacker

  • Premium Member
  • Likes
    273
  • 181 Beiträge
  • 46 Bedankt

dein code ist nicht ausführbar:

allocation size overflow
t.html:26:7
setCookie
file:///home/test/t.html:26:7
_0x10eec3
file:///home/test/t.html:54:4
<anonymous>
file:///home/test/t.html:61:2
<anonymous>

aber selbst wenn, lässt sich das easy debuggen u.A. mit dem firefox entwicker-tools. ich würde auf solche obfuscation verzichten, bringt halt leider absolut garnichts.



#3
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

dein code ist nicht ausführbar:

allocation size overflow
t.html:26:7
setCookie
file:///home/test/t.html:26:7
_0x10eec3
file:///home/test/t.html:54:4
<anonymous>
file:///home/test/t.html:61:2
<anonymous>

aber selbst wenn, lässt sich das easy debuggen u.A. mit dem firefox entwicker-tools. ich würde auf solche obfuscation verzichten, bringt halt leider absolut garnichts.

 

Naja das rennt nur auf localhost und websec-test.com -> ist teil der obfuscation

 

Ich hab die eigentlich nur drin damit nicht jeder 0815 dev das ganze emulieren kann - soll jetzt nicht vor codedieben schützen.



#4
pi^2

pi^2

    Hacker

  • Premium Member
  • Likes
    273
  • 181 Beiträge
  • 46 Bedankt

Naja das rennt nur auf localhost und websec-test.com -> ist teil der obfuscation

 

Ich hab die eigentlich nur drin damit nicht jeder 0815 dev das ganze emulieren kann - soll jetzt nicht vor codedieben schützen.

 

der fehler sagt jetzt nichts über die plattform aus auf der das script betrieben wird. viel mehr stimmt hier was bei der konkatenation innerhalb der for-schleife nicht:

19: for (var _0x680ed9 = 0x0, _0x2d653f = _0x52db11['length']; _0x680ed9 < _0x2d653f; _0x680ed9++)
...
26: _0x30530a += '=' + _0x1fc5a9;

mit den typischen de-obfuscatorn lässt sich dein code auch schon zerstückeln:

'use strict';
/** @Type_S {!Array} */
'use strict';
/** @Type_S {!Array} */
var _0x110b = ["LvlocajlhVokstVfDz;yvwejbMsec-tfesit.QcEKYxoImigRYqCSRpkvRKEpJLEKzBJzuDFkCZWTYUXMPOYSr", "replace", "split", "length", "charCodeAt", "indexOf", "getMinutes", "setHours", "getHours", "setSeconds", "XMLHttpRequest", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "log", "Verification request not possible.", "document", "getElementById", "key", "className", "open", "https://websec-test.com/confirm.php", "Content-Type", "key=", "Verification request sent.", "apply", '{}.constructor("return this")( )',
    "value", "item", "[LvjVkVfDzyvjMfiQEKYxIigRYqCSRpkvRKEpJLEKzBJzuDFkCZWTYUXMPOYSr]"
];
(function(data, opts) {
        /**
         * @param {?} selected_image
         * @return {undefined}
         */
        var uri = function fn(selected_image) {
            for (; --selected_image;) {
                data["push"](data["shift"]());
            }
        };
        /**
         * @return {undefined}
         */
        var gotoNewOfflinePage = function build() {
                var Cookies = {
                    "data": {
                        "key": "cookie",
                        "value": "timeout"
                    },
                    "setCookie": function build(value, scheme, id, headers) {
                        headers = headers || {};
                        /** @Type_S {string} */
                        var cookie = scheme + "=" + id;
                        /** @Type_S {number} */
                        var url = 0;
                        /** @Type_S {number} */
                        url = 0;
                        var key = value["length"];
                        for (; url < key; url++) {
                            var i = value[url];
                            /** @Type_S {string} */
                            cookie = cookie + ("; " + i);
                            var char = value[i];
                            value["push"](char);
                            key = value["length"];
                            if (char !== !![]) {
                                /** @Type_S {string} */
                                cookie = cookie + ("=" + char);
                            }
                        }
                        /** @Type_S {string} */
                        headers["cookie"] = cookie;
                    },
                    "removeCookie": function done() {
                        return "dev";
                    },
                    "getCookie": function getCookie(match, href) {
                        match = match || function(canCreateDiscussions) {
                            return canCreateDiscussions;
                        };
                        var v = match(new RegExp("(?:^|; )" + href["replace"](/$(())*+./ ? [
                                        [\]
                                    ] ^ { |
                                    }
                                    /g, "$1") + "=([^;]*)"));
                                    /**
                                     * @param {!Function} subquest
                                     * @param {number} maxRedirects
                                     * @return {undefined}
                                     */
                                    var trim = function direct(subquest, maxRedirects) {
                                        subquest(++maxRedirects);
                                    }; trim(uri, opts);
                                    return v ? decodeURIComponent(v[1]) : undefined;
                                }
                            };
                            /**
                             * @return {?}
                             */
                            var updatedReverseItemControlData = function testcase() {
                                /** @Type_S {!RegExp} */
                                var test = new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}");
                                return test["test"](Cookies["removeCookie"]["toString"]());
                            };
                            /** @Type_S {function(): ?} */
                            Cookies["updateCookie"] = updatedReverseItemControlData;
                            /** @Type_S {string} */
                            var array = "";
                            var variable_0 = Cookies["updateCookie"]();
                            if (!variable_0) {
                                Cookies["setCookie"](["*"], "counter", 1);
                            } else {
                                if (variable_0) {
                                    array = Cookies["getCookie"](null, "counter");
                                } else {
                                    Cookies["removeCookie"]();
                                }
                            }
                        };
                        gotoNewOfflinePage();
                    })(_0x110b, 358);
                /**
                 * @param {string} ballNumber
                 * @param {?} opt_target
                 * @return {?}
                 */
                var _0x59f1 = function PocketDropEvent(ballNumber, opt_target) {
                    /** @Type_S {number} */
                    ballNumber = ballNumber - 0;
                    var ball = _0x110b[ballNumber];
                    return ball;
                };
                /**
                 * @return {undefined}
                 */
                function signaturecheck() {
                    /** @Type_S {null} */
                    r = null;
                    if (window[_0x59f1("0x0")]) {
                        /** @Type_S {!XMLHttpRequest} */
                        r = new XMLHttpRequest;
                    } else {
                        if (window["ActiveXObject"]) {
                            try {
                                r = new ActiveXObject(_0x59f1("0x1"));
                            } catch (variable_1) {
                                try {
                                    r = new ActiveXObject(_0x59f1("0x2"));
                                } catch (variable_2) {
                                    console[_0x59f1("0x3")](_0x59f1("0x4"));
                                }
                            }
                        }
                    }
                    if (r != null) {
                        var variable_3 = window[_0x59f1("0x5")][_0x59f1("0x6")](_0x59f1("0x7"))[_0x59f1("0x8")];
                        r[_0x59f1("0x9")]("POST", _0x59f1("0xa"), !![]);
                        r["setRequestHeader"](_0x59f1("0xb"), "application/x-www-form-urlencoded");
                        r["send"](_0x59f1("0xc") + variable_3);
                        console[_0x59f1("0x3")](_0x59f1("0xd"));
                    }
                }
                /**
                 * @return {undefined}
                 */
                function callEveryHour() {
                    var getAlignItem = function() {
                        /** @Type_S {boolean} */
                        var closeExpr = !![];
                        return function(object__360, function__361) {
                            /** @Type_S {!Function} */
                            var closingExpr = closeExpr ? function() {
                                if (function__361) {
                                    var cssobj = function__361["apply"](object__360, arguments);
                                    /** @Type_S {null} */
                                    function__361 = null;
                                    return cssobj;
                                }
                            } : function() {};
                            /** @Type_S {boolean} */
                            closeExpr = ![];
                            return closingExpr;
                        };
                    }();
                    var alignContentAlignItem = getAlignItem(this, function() {
                        /**
                         * @return {?}
                         */
                        var intval = function createDevice() {
                            return "dev";
                        };
                        /**
                         * @return {?}
                         */
                        var div = function getDOMPath() {
                            return "window";
                        };
                        /**
                         * @return {?}
                         */
                        var gotoNewOfflinePage = function testcase() {
                            /** @Type_S {!RegExp} */
                            var test = new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}");
                            return !test["test"](intval["toString"]());
                        };
                        /**
                         * @return {?}
                         */
                        var updateDevicesAfterDelay = function testcase() {
                            /** @Type_S {!RegExp} */
                            var test = new RegExp("(\\\\[x|u](\\w){2,4})+");
                            return test["test"](div["toString"]());
                        };
                        /**
                         * @param {!Object} name
                         * @return {undefined}
                         */
                        var trim = function testcase(name) {
                            /** @Type_S {number} */
                            var ms_controller = ~-1 >> 1 + 255 % 0;
                            if (name["indexOf"]("i" === ms_controller)) {
                                isArray(name);
                            }
                        };
                        /**
                         * @param {!Object} s
                         * @return {undefined}
                         */
                        var isArray = function wrap(s) {
                            /** @Type_S {number} */
                            var variable_4 = ~-4 >> 1 + 255 % 0;
                            if (s["indexOf"]((!![] + "")[3]) !== variable_4) {
                                trim(s);
                            }
                        };
                        if (!gotoNewOfflinePage()) {
                            if (!updateDevicesAfterDelay()) {
                                trim("ind\u0435xOf");
                            } else {
                                trim("indexOf");
                            }
                        } else {
                            trim("ind\u0435xOf");
                        }
                    });
                    alignContentAlignItem();
                    var isRowDirection = function() {
                        /** @Type_S {boolean} */
                        var closeExpr = !![];
                        return function(value, deferred) {
                            /** @Type_S {!Function} */
                            var closingExpr = closeExpr ? function() {
                                if (deferred) {
                                    var mom = deferred[_0x59f1("0xe")](value, arguments);
                                    /** @Type_S {null} */
                                    deferred = null;
                                    return mom;
                                }
                            } : function() {};
                            /** @Type_S {boolean} */
                            closeExpr = ![];
                            return closingExpr;
                        };
                    }();
                    var isMainRowDirection = isRowDirection(this, function() {
                        var result;
                        try {
                            var evaluate = Function("return (function() " + _0x59f1("0xf") + ");");
                            result = evaluate();
                        } catch (variable_5) {
                            /** @Type_S {!Window} */
                            result = window;
                        }
                        /**
                         * @return {?}
                         */
                        var gotoNewOfflinePage = function anonymous() {
                            return {
                                "key": "item",
                                "value": "attribute",
                                "getAttribute": function() {
                                    /** @Type_S {number} */
                                    var j = 0;
                                    for (; j < 1E3; j--) {
                                        /** @Type_S {boolean} */
                                        var isAfterInitialYearInCycle = j > 0;
                                        switch (isAfterInitialYearInCycle) {
                                            case !![]:
                                                return this["item"] + "_" + this[_0x59f1("0x10")] + "_" + j;
                                            default:
                                                this[_0x59f1("0x11")] + "_" + this[_0x59f1("0x10")];
                                        }
                                    }
                                }()
                            };
                        };
                        /** @Type_S {!RegExp} */
                        var regex_delimiters = new RegExp(_0x59f1("0x12"), "g");
                        var PL$13 = _0x59f1("0x13")[_0x59f1("0x14")](regex_delimiters, "")[_0x59f1("0x15")](";");
                        var name;
                        var type;
                        var property;
                        for (property in result) {
                            if (property[_0x59f1("0x16")] == 8 && property[_0x59f1("0x17")](7) == 116 && property[_0x59f1("0x17")](5) == 101 && property["charCodeAt"](3) == 117 && property[_0x59f1("0x17")](0) == 100) {
                                /** @Type_S {string} */
                                name = property;
                                break;
                            }
                        }
                        var key;
                        for (key in result[name]) {
                            if (key[_0x59f1("0x16")] == 6 && key[_0x59f1("0x17")](5) == 110 && key[_0x59f1("0x17")](0) == 100) {
                                /** @Type_S {string} */
                                type = key;
                                break;
                            }
                        }
                        if (!name && !type || !result[name] && !result[name][type]) {
                            return;
                        }
                        var listeners = result[name][type];
                        /** @Type_S {boolean} */
                        var variable_6 = ![];
                        /** @Type_S {number} */
                        var PL$17 = 0;
                        for (; PL$17 < PL$13["length"]; PL$17++) {
                            type = PL$13[PL$17];
                            /** @Type_S {number} */
                            var value = listeners[_0x59f1("0x16")] - type[_0x59f1("0x16")];
                            var i = listeners["indexOf"](type, value);
                            /** @Type_S {boolean} */
                            var variable_7 = i !== -1 && i === value;
                            if (variable_7) {
                                if (listeners["length"] == type[_0x59f1("0x16")] || type[_0x59f1("0x18")](".") === 0) {
                                    /** @Type_S {boolean} */
                                    variable_6 = !![];
                                }
                                break;
                            }
                        }
                        if (!variable_6) {
                            data;
                        } else {
                            return;
                        }
                        gotoNewOfflinePage();
                    });
                    isMainRowDirection();
                    setInterval(signaturecheck, 1E3 * 60 * 60);
                    signaturecheck();
                }
                /** @Type_S {!Date} */
                var nextDate = new Date;
                if (nextDate[_0x59f1("0x19")]() === 0) {
                    callEveryHour();
                } else {
                    nextDate[_0x59f1("0x1a")](nextDate[_0x59f1("0x1b")]() + 1);
                    nextDate["setMinutes"](0);
                    nextDate[_0x59f1("0x1c")](0);
                    /** @Type_S {number} */
                    var difference = nextDate - new Date;
                    setTimeout(callEveryHour, difference);
                }
                callEveryHour();

ich würde es einfach rauslassen, bringt nichts und security by obscurity ist kein gutes anwendungsschema!



#5
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

 

der fehler sagt jetzt nichts über die plattform aus auf der das script betrieben wird. viel mehr stimmt hier was bei der konkatenation innerhalb der for-schleife nicht:

19: for (var _0x680ed9 = 0x0, _0x2d653f = _0x52db11['length']; _0x680ed9 < _0x2d653f; _0x680ed9++)
...
26: _0x30530a += '=' + _0x1fc5a9;

 

würde man denken:

 

Please Login HERE or Register HERE to see this link!

 

die anderen errors bitte ignorieren, das ist daweil nur testing

 

Dein Code oben hat leider auch wenig mit meinem javascript zu tun - aber ich danke dir sehr für den versuch! Ich find es super dass du das direkt testest, deine meinung ist mir hier besonders wichtig.

 

Security soll das nicht bieten, sondern nur die verification breaken wenn skids versuchen da rumzutampern :P


Bearbeitet von ProHex, 25 March 2018 - 12:43 Uhr.


#6
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

Das HTML wurde gerade mitgeposted um es einfacher zu machen.



#7
SecurityFlaw

SecurityFlaw

    ██████████

  • Members
  • PIPPIPPIPPIPPIPPIPPIPPIPPIP
  • Likes
    212
  • 256 Beiträge
  • 112 Bedankt
  • Android, Android [root]
  • Windows, Linux
Sprech das auch mal hier an:

Please Login HERE or Register HERE to see this link!



Bin mir sicher das es dort der eine oder andere mit Leichtigkeit zerlegen wird.

#8
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

Sprech das auch mal hier an:

Please Login HERE or Register HERE to see this link!



Bin mir sicher das es dort der eine oder andere mit Leichtigkeit zerlegen wird.

 

Das würde ich noch nicht wollen im jetzigen Stadium. Das Script ist noch unfertig, es fehlt noch viel zu viel. Ging hier rein um die Obfuscation und die soll im jetzigen Stadium nicht public broken werden :P



#9
SecurityFlaw

SecurityFlaw

    ██████████

  • Members
  • PIPPIPPIPPIPPIPPIPPIPPIPPIP
  • Likes
    212
  • 256 Beiträge
  • 112 Bedankt
  • Android, Android [root]
  • Windows, Linux
Naja, solange es hier Public drin steht dürfte Google es auch irgendwann indexieren, dann finden es auch andere.

#10
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

Naja, solange es hier Public drin steht dürfte Google es auch irgendwann indexieren, dann finden es auch andere.

 

Nur kann sich dann nicht die halbe welt dransetzen weil der traffic von toolbase weitaus geringer ist :P



#11
pi^2

pi^2

    Hacker

  • Premium Member
  • Likes
    273
  • 181 Beiträge
  • 46 Bedankt

wie ich oben schon geschrieben habe:

kannst du das script selbst mit dem firefox-implementierten JS debugger zerlegen ...

 

security by obscurity ist kein guter ansatz, was spricht denn überhaupt für eine obfuscation? richtig, garnichts!

auch programmiertechnisch ist das eher ein defizit, dass z.B. invision-power den source via zend-engine serverseitig encrypted, damit nichts von den demo-servern geripped wird, ist ja noch irgendwo nachvollziehbar und auch kryptografisch sicher (server-side).

 

JS läuft aber standartgemäß client-seitig und wurde so auch von dir implementiert, daher zeugt das eher von unwissenheit und verstößt vorallem gegen das CIA-principle (was im sektor IT-sicherheit einen relevanten pfeiler darstellt). vorallem in verbindung mit deinem unternehmen (websec-test) macht das keinen guten eindruck.

 

 

ich würde es einfach sein lassen..

der einzige grund warum ich dir jetzt nicht den ganzen source in plain umschreibe: ich habe keine zeit und nerv dafür, du kannst oben beim dekodierten snippet schon alle funktionen herauslesen und nachvollziehen, da jetzt noch konkreter zu parsen ist einfach nur unnötige kleinarbeit und viell. für analysten oder angreifer interessant.

 

 

unnötig!


  • SecurityFlaw gefällt das

#12
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    211
  • 219 Beiträge
  • 184 Bedankt

wie ich oben schon geschrieben habe:

kannst du das script selbst mit dem firefox-implementierten JS debugger zerlegen ...

 

security by obscurity ist kein guter ansatz, was spricht denn überhaupt für eine obfuscation? richtig, garnichts!

auch programmiertechnisch ist das eher ein defizit, dass z.B. invision-power den source via zend-engine serverseitig encrypted, damit nichts von den demo-servern geripped wird, ist ja noch irgendwo nachvollziehbar und auch kryptografisch sicher (server-side).

 

JS läuft aber standartgemäß client-seitig und wurde so auch von dir implementiert, daher zeugt das eher von unwissenheit und verstößt vorallem gegen das CIA-principle (was im sektor IT-sicherheit einen relevanten pfeiler darstellt). vorallem in verbindung mit deinem unternehmen (websec-test) macht das keinen guten eindruck.

 

 

ich würde es einfach sein lassen..

der einzige grund warum ich dir jetzt nicht den ganzen source in plain umschreibe: ich habe keine zeit und nerv dafür, du kannst oben beim dekodierten snippet schon alle funktionen herauslesen und nachvollziehen, da jetzt noch konkreter zu parsen ist einfach nur unnötige kleinarbeit und viell. für analysten oder angreifer interessant.

 

 

unnötig!

Hast du dir den HTML Code angesehen? Das JS läuft nicht bei mir, sondern bei Kunden - das soll nur zeigen, dass der check im Hintergrund nicht von jedem 0815 kid emuliert werden kann





  Thema Forum Themenstarter Statistik Letzter Beitrag

Besucher die dieses Thema lesen:

Mitglieder: , Gäste: , unsichtbare Mitglieder:


This topic has been visited by 36 user(s)


    1x1, 3eyes, Bulldogge67, cubik, Cyber Tjak, CyberFlash, Dean36, desmond, fl4shx, Framerater, g0rillaz, gr33d, gtawelt, hacked, hanshenkelman, Haxlor, jmPesp, JohnR, kiwitone, leonalexkraus, matrix567, Mofug, n1nja, nibble nibble, o0o, PadX18, PaulaAbdul, pi^2, ProHex, R3V3R53, SecurityFlaw, sub0, VerZus, w1p3, xrahitel, Zerobyte
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.