Забавная задачка: HtmlProtector на JavaScript

Vladislav177Rus

<HTML><HEAD>
<META content=noindex name=robots>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<SCRIPT language=JavaScript><!--
function HTMLock(pw,er){var h=new Array(

'<!--***************************************',
' This page protected by Atrise HTMLock ',
'Copyright (C) Atrise Software Co. 2001-2004',
' http://www.atrise.com/ ',
'****************************************-->',

//Page Begin
'77',
'u*,$URQ7F36-(&6644T` :+:63363C3D32u,/)$)62y0031&3D27363Ds0834/:y633D2727363D27*61o+:#37q 3D/34r~?>-(&*u3E+36-31+3ErnivojwORu*353933:',
'650F31)-+36.pr6363p/**$,|U4362s%:3E?}S4244H64+3138347F3D3C 31$&3065k}1A0B19191D05|h3D27 3D63~nooksnxkOR&3010"3E;6661)!27&373Ep/(+0B32.;273C36po/',
')"+64/,.66%-;(*35"31q3331;.t65303D*,wpp,34)66-++*31*(-30(m3D27$m; *3D 3631|65/3D&366365nl}ovy}S42um:&:%sRUgl363C$.6644T');
//Page End

var emsg='Invalid password';
var t='\00\01\02\03\04\05\06\07\010\t\n\013\014\r\016\017\020\021\022\023\024\025\026\027\030\031\032'+
'\033\034\035\036\037\040!\042#$%&\047*+,-./0123456789:;\074=\076?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\134]^_`abcdefghijkl'+
'mnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡?‰Љ‹ЊЌЋЏђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПР'+
'СТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя';var x='0123456789ABCDEF';var i,j,xs;var c=0;
if(pw.length==0)return false;for(i=0;i<pw.length;i++)c=c^t.indexOf(pw.charAt(i;if(c!=parseInt(h[5].charAt(0)+h[5].charAt(116{
if(er==1)alert(emsg);return false;}for(i=0;i<5;i++)document.writeln(h[i]);for(i=0;i<40;i++)document.writeln;
var n=pw.length;var m=0;var s='';for(j=6;j<h.length;j++){for(i=0;i<h[j].length;i++){xs=h[j].charAt(i)
if(x.indexOf(xs)>=0){i++;xs=xs+h[j].charAt(i);c=parseInt(xs,16);}else c=t.indexOf(xs);
c=c^44^t.indexOf(pw.charAt(m;m++;if(m==n)m=0;if(c==13){document.writeln(s);s='';}else if(c==10){;}else s=s+t.charAt(c);}
}document.writeln(s);document.close;return true;}function OnLoadCheck{var e='&';var q=unescape(
window.location.search).toLowerCase+e;i=q.indexOf('pwd=');var p='';if(i!=-1){var a=q.substring(i+4,
q.indexOf(e,i+4;if(a!='')p=a;}HTMLock(p,0);}

function HTMLockCall(pwd){HTMLock(document.forms[0].pwd.value,1);}
// --></SCRIPT>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY onload=OnLoadCheck;>
<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR vAlign=center align=middle>
<TD>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD>
<FORM name=queryform action=javascript:HTMLockCall//>
<P align=center>Password: <INPUT type=password name=pwd> <INPUT type=submit value=Show name=submit>
</P></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
Я решил, попробуйте и вы

Julie16

А в чем задачка? Пройти форму? Тут два варианта: или долго рюхать что делает этот поганый жава скрипт, или взять где-нибуть интерпретатор. Вроде можно выковырять из мозиллы... Но вообще это адова задача. Я вот недавеча пытался разобраться с подобным скриптом, на aol...

Vladislav177Rus

Рюхать, что делает JS, недолго, находить пароль интереснее.

Werdna

Убивать надо таких песателей, они сами через неделю не поймут что их прога делает.

durka82

А ты уверен, что нынешний вид этой проги не получен генератором?
Это правильный подход - исходный код может быть подробно закомментирован и обвешан отладочными печатями, а конечный код, например, минимизирован по размеру - в одну строчку

Vladislav177Rus

Там даже написано:
 '  This page protected by Atrise HTMLock    ',
'Copyright (C) Atrise Software Co. 2001-2004',
' http://www.atrise.com/ ',
Это генератор, который должен защищать страницу паролем, но из-за особенностей мышления его авторов, защищает он плохо.

Dmitriy82

Я не понял, а почему там всё так сложно вместо
if (hashFunction(inputedText) != hashFunction('password' return;
где hashFunction('password') заранее посчитано

Dmitriy82

Уже понял. Туплю.

durka82

Это генератор, который должен защищать страницу паролем, но из-за особенностей мышления его авторов, защищает он плохо.
То есть ты уже разобрался в коде?
А какие особенности?

Vladislav177Rus

То есть ты уже разобрался в коде?
А какие особенности?
Я решил, попробуйте и вы
Не хочу лишать вас этого удовольствия

puzelena

ты просто прошел формочку или увидел осознанную фразу за ней ?
при фиксированной длине пароля проходят форму 256^(<длина пароля> - 1) паролей и для всех результат на следующей странице будет разный
напр., "w", "F1", "1F" - проходят, но в результате лажа

Vladislav177Rus

В этом коде текст в массиве, начиная с элемента 6 представляет собой двоичные данные, где непечатаемые символы, ' и шестнадцатеричные "цифры" заменены на их шестнадцатеричное представление. Потом эти данные ксорятся с 44, а потом с паролем. Поскольку в заголовке написано, что это HTML-протектор, логично попробовать провести атаку по известному тексту на XOR (текст отксоренный 44 к которой тот очень уязвим.
Оставить комментарий
Имя или ник:
Комментарий: