728x90
디버그 하라고 한다.
개발자 도구에 있는 script를 갖고오면은
var a = [
"RcOhTDV1Ew==",
"McOVwqpRBg==",
"c8K/w43DvcK8",
"SsOrTCF1CVDCgcKLEsKc",
"NsK/w4Bc",
"G1TDpwk=",
"AcKtwqfDlW7Dsw==",
"e3kkcQJfwoNFDEU9",
"QMOXDBo=",
"w5bCsWlh",
"eWY6bg8=",
"FnbDoEvDtl1LUkB7w4Q=",
"esOZTiPDsg==",
"bzfCkFfCtA==",
"ZmzDjHcn",
"PxLCm3LDvA==",
"IcKlVy9pw57DgMK3w6kmwpvCiUnDhcOKw4A=",
"LMKnwqECawEeEMOZQsK7wrLCscKpSG1AwqvDvjnDpMKhOSDCqQfDmVRowo1nwpzCh8OGc1vDv3cKVR/CgMK4w7PCukbCv8O8woNHXcK7SsOmMhHDnUEJw4lsw6g=",
"wrTDnltl",
"UMOXHRs=",
"Tz0lw48=",
"O8K0w5JcwrA=",
"w5DCpnx/LA==",
"HsKrS8KVQw==",
"dcKvfnkhUQ3DncOFIsOew5lHwr7CjcKYAsOuwrc3UjhfwopNwqwuWcOjw4PDrkIRWAfCnSIdw5jDtsKyWFBMwq4YMQvDhRrCrlBlw71LUR5HGMKwEBs=",
"w4RAw5xg",
"RkQSNA==",
"SsOsQztv",
"wonDvMOwwow=",
"wovDlMKvw5nCog==",
"w73Ch8K5VcK/",
"wpN7HsOMwpI=",
"w5/CuMKDacOKPcKoB3jDomQ=",
"wpnDvMOhwo0=",
"wp4xwrvDvA==",
"H1LDrhc=",
"wo86woHDm37Dow==",
"woY4wobDmg==",
"wr/CgMKQNcOo",
"ecOlUSF2S3fCsMKbGQ==",
"E3nCrcKe",
"w5d5w6HDnsOFw7RcRFjDosKsZ8OHEcOv",
"QMOXDBrCrcKLwp3DvA==",
"w5fDsiPDrsOf",
"V3c3A0Q=",
"E8OjwpNaP1lDTMKXcsO5",
"G08JPDZMw5s8w4ITw54dEMKAwps=",
"wo8pwoXDnmg=",
"wpo5wqvDoMOQw6Jd",
"bH4+TyM=",
];
(function (c, d) {
var e = function (f) {
while (--f) {
c["push"](c["shift"]());
}
};
var g = function () {
var h = {
data: { key: "cookie", value: "timeout" },
setCookie: function (i, j, k, l) {
l = l || {};
var m = j + "=" + k;
var n = 0x0;
for (var n = 0x0, p = i["length"]; n < p; n++) {
var q = i[n];
m += ";\x20" + q;
var r = i[q];
i["push"](r);
p = i["length"];
if (r !== !![]) {
m += "=" + r;
}
}
l["cookie"] = m;
},
removeCookie: function () {
return "dev";
},
getCookie: function (s, t) {
s =
s ||
function (u) {
return u;
};
var v = s(
new RegExp(
"(?:^|;\x20)" +
t["replace"](/([.$?*|{}()[]\/+^])/g, "$1") +
"=([^;]*)"
)
);
var w = function (x, y) {
x(++y);
};
w(e, d);
return v ? decodeURIComponent(v[0x1]) : undefined;
},
};
var z = function () {
var A = new RegExp(
"\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}"
);
return A["test"](h["removeCookie"]["toString"]());
};
h["updateCookie"] = z;
var B = "";
var C = h["updateCookie"]();
if (!C) {
h["setCookie"](["*"], "counter", 0x1);
} else if (C) {
B = h["getCookie"](null, "counter");
} else {
h["removeCookie"]();
}
};
g();
})(a, 0xa2);
var b = function (c, d) {
c = c - 0x0;
var e = a[c];
if (b["clOwyu"] === undefined) {
(function () {
var f = function () {
var g;
try {
g = Function(
"return\x20(function()\x20" +
"{}.constructor(\x22return\x20this\x22)(\x20)" +
");"
)();
} catch (h) {
g = window;
}
return g;
};
var i = f();
var j =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
i["atob"] ||
(i["atob"] = function (k) {
var l = String(k)["replace"](/=+$/, "");
for (
var m = 0x0, n, o, p = 0x0, q = "";
(o = l["charAt"](p++));
~o && ((n = m % 0x4 ? n * 0x40 + o : o), m++ % 0x4)
? (q += String["fromCharCode"](0xff & (n >> ((-0x2 * m) & 0x6))))
: 0x0
) {
o = j["indexOf"](o);
}
return q;
});
})();
var r = function (s, d) {
var u = [],
v = 0x0,
w,
x = "",
y = "";
s = atob(s);
for (var z = 0x0, A = s["length"]; z < A; z++) {
y += "%" + ("00" + s["charCodeAt"](z)["toString"](0x10))["slice"](-0x2);
}
s = decodeURIComponent(y);
for (var B = 0x0; B < 0x100; B++) {
u[B] = B;
}
for (B = 0x0; B < 0x100; B++) {
v = (v + u[B] + d["charCodeAt"](B % d["length"])) % 0x100;
w = u[B];
u[B] = u[v];
u[v] = w;
}
B = 0x0;
v = 0x0;
for (var C = 0x0; C < s["length"]; C++) {
B = (B + 0x1) % 0x100;
v = (v + u[B]) % 0x100;
w = u[B];
u[B] = u[v];
u[v] = w;
x += String["fromCharCode"](
s["charCodeAt"](C) ^ u[(u[B] + u[v]) % 0x100]
);
}
return x;
};
b["wxbdQn"] = r;
b["ZjQald"] = {};
b["clOwyu"] = !![];
}
var D = b["ZjQald"][c];
if (D === undefined) {
if (b["XvSLaK"] === undefined) {
var E = function (F) {
this["swkpev"] = F;
this["DGOTpS"] = [0x1, 0x0, 0x0];
this["zlbdZJ"] = function () {
return "newState";
};
this["KCuPKs"] = "\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*";
this["AnZPoE"] = "[\x27|\x22].+[\x27|\x22];?\x20*}";
};
E["prototype"]["DCDTIR"] = function () {
var G = new RegExp(this["KCuPKs"] + this["AnZPoE"]);
var H = G["test"](this["zlbdZJ"]["toString"]())
? --this["DGOTpS"][0x1]
: --this["DGOTpS"][0x0];
return this["ZjMdYn"](H);
};
E["prototype"]["ZjMdYn"] = function (I) {
if (!Boolean(~I)) {
return I;
}
return this["LqSTke"](this["swkpev"]);
};
E["prototype"]["LqSTke"] = function (J) {
for (var K = 0x0, L = this["DGOTpS"]["length"]; K < L; K++) {
this["DGOTpS"]["push"](Math["round"](Math["random"]()));
L = this["DGOTpS"]["length"];
}
return J(this["DGOTpS"][0x0]);
};
new E(b)["DCDTIR"]();
b["XvSLaK"] = !![];
}
e = b["wxbdQn"](e, d);
b["ZjQald"][c] = e;
} else {
e = D;
}
return e;
};
var e = (function () {
var c = !![];
return function (d, e) {
var f = c
? function () {
if (e) {
var g = e["apply"](d, arguments);
e = null;
return g;
}
}
: function () {};
c = ![];
return f;
};
})();
var Q = e(this, function () {
var c = function () {
return "\x64\x65\x76";
},
d = function () {
return "\x77\x69\x6e\x64\x6f\x77";
};
var e = function () {
var f = 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 !f["\x74\x65\x73\x74"](c["\x74\x6f\x53\x74\x72\x69\x6e\x67"]());
};
var g = function () {
var h = new RegExp(
"\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b"
);
return h["\x74\x65\x73\x74"](d["\x74\x6f\x53\x74\x72\x69\x6e\x67"]());
};
var i = function (j) {
var k = ~-0x1 >> (0x1 + (0xff % 0x0));
if (j["\x69\x6e\x64\x65\x78\x4f\x66"]("\x69" === k)) {
l(j);
}
};
var l = function (m) {
var n = ~-0x4 >> (0x1 + (0xff % 0x0));
if (m["\x69\x6e\x64\x65\x78\x4f\x66"]((!![] + "")[0x3]) !== n) {
i(m);
}
};
if (!e()) {
if (!g()) {
i("\x69\x6e\x64\u0435\x78\x4f\x66");
} else {
i("\x69\x6e\x64\x65\x78\x4f\x66");
}
} else {
i("\x69\x6e\x64\u0435\x78\x4f\x66");
}
});
Q();
var q = (function () {
var r = !![];
return function (s, t) {
var u = r
? function () {
if (b("0x0", "hezG") !== b("0x1", "A6hd")) {
if (t) {
if (b("0x2", "G(vo") === b("0x3", "K*$C")) {
q(this, function () {
var j = new RegExp(b("0x4", "$VvG"));
var k = new RegExp(b("0x5", "2@LG"), "i");
var l = H(b("0x6", "k(C)"));
if (
!j[b("0x7", "14cN")](l + "chain") ||
!k[b("0x8", "aEot")](l + b("0x9", "ln]I"))
) {
l("0");
} else {
H();
}
})();
} else {
var z = t[b("0xa", "$ybZ")](s, arguments);
t = null;
return z;
}
}
} else {
var f = r
? function () {
if (t) {
var g = t[b("0xb", "C%Xw")](s, arguments);
t = null;
return g;
}
}
: function () {};
r = ![];
return f;
}
}
: function () {};
r = ![];
return u;
};
})();
(function () {
q(this, function () {
var D = new RegExp("function\x20*\x5c(\x20*\x5c)");
var E = new RegExp(b("0xc", "RLUb"), "i");
var F = H(b("0xd", "iWKi"));
if (
!D[b("0xe", "ho]6")](F + b("0xf", "RLUb")) ||
!E[b("0x10", "X!$R")](F + b("0x11", "RUTX"))
) {
if (b("0x12", "J[i1") === b("0x13", "Pa4(")) {
F("0");
} else {
(function () {
return !![];
})
[b("0x14", "kK4Z")](b("0x15", "X!$R") + b("0x16", "llaF"))
[b("0x17", "3R^0")](b("0x18", "iUmC"));
}
} else {
H();
}
})();
})();
setInterval(function () {
H();
}, 0xfa0);
if (location[b("0x19", "iUmC")][("0x1a", "6]r1")](0x1) == b("0x1b", "RLUb"))
location[b("0x1c", "4c%d")] = b("0x1d", "llaF");
else alert(b("0x1e", "14cN"));
function H(I) {
function J(K) {
if (b("0x1f", "oYXf") !== b("0x20", "ho]6")) {
return J;
} else {
if (typeof K === "string") {
return function (M) {}
[b("0x21", "2@LG")](b("0x22", "joDm"))
[b("0x23", "iUmC")](b("0x24", "llaF"));
} else {
if ("thtMU" === b("0x25", "Am%6")) {
if (("" + K / K)[b("0x26", "RLUb")] !== 0x1 || K % 0x14 === 0x0) {
if (b("0x27", "2@LG") !== b("0x28", "bO4C")) {
return !![];
} else {
(function () {
return !![];
})
[b("0x29", "RLUb")](b("0x2a", "ln]I") + b("0x2b", "3R^0"))
["call"](b("0x2c", "c3hQ"));
}
} else {
(function () {
return ![];
})
[b("0x2d", "Am%6")](b("0x2e", "14cN") + b("0x2f", "$ybZ"))
[b("0x30", "Am%6")](b("0x31", "O!T!"));
}
} else {
H();
}
}
J(++K);
}
}
try {
if (I) {
return J;
} else {
J(0x0);
}
} catch (P) {}
}
뭐 코드가 겁나 많은데 자세히 봐야할 부분은 debug me 라고 뜨는 alert부분이다.
코드의 alert쪽만 다시 첨부하겠다.
if (location[b("0x19", "iUmC")][("0x1a", "6]r1")](0x1) == b("0x1b", "RLUb"))
location[b("0x1c", "4c%d")] = b("0x1d", "llaF");
else alert(b("0x1e", "14cN"));
저 if문의 조건이 안맞으면 else문으로가 debug me를 alert하는것 같다.
처음 풀때 저 조건까지 볼려했지만 생각해보니 조건문이 해당될때의 코드만 보면 됐다.
location[b("0x1c", "4c%d")] = b("0x1d", "llaF");
이 부분을 개발자도구 script에 복붙하면은
저 주소로 와진다. 결국엔 저 코드는 location.href = ./?Passw0RRdd=1 이라는 코드였다.
728x90
반응형
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-02 (0) | 2024.07.06 |
---|---|
[Webhacking.kr] old-29 풀이 (0) | 2024.04.29 |
Webhacking.kr old-55 풀이 (2) | 2024.02.06 |
Webhacking.kr old-52 풀이 (0) | 2024.02.04 |
Webhacking.kr old-48 풀이 (0) | 2024.01.27 |