Вот у меня есть типо скрипт, который запрашивает пароль. Можно ли его как нить обойти? <Script> <!-- var checkpass='' tell=0 counttimes=0 disComp=0 function preferences(encryptpass,encryptdepth,what,dis){ disComp=dis tell=0 tell=what checkpass='' counttimes=0 times=encryptdepth checkpass=encryptpass orig='' this.check=mkasci } bases=new Array(17,33,57,101); var acharset='XYZNOhijkVWHIJ45ncdefMyzopqPQRSTUABKL6789ab_rs23CDEFGlmwtuvg01x' var storeup=''; function mkasci(orig){ if(counttimes==0){storeup=orig} ascival=new Array() for(i=0;i<=orig.length-1;i++){ for(i1=0;i1<=acharset.length;i1++){ if(orig.charAt(i)==acharset.charAt(i1)){ascival=i1} } } themeat(ascival) } function cutoff(code){ eval("var whatcode='"+code+"'"); eval("var whatcode2='"+Math.ceil(code)+"'"); bigVal=(Math.pow(10,whatcode.length-(whatcode2.length)-2)<1)?1:Math.pow(10,whatcode.length-(whatcode2.length)-2); whatcode3=Math.round(code*bigVal)/bigVal return(whatcode3) } function themeat(basecode){ if(basecode.length>=4){ counttimes++ if(disComp==1){window.status="Computating encryption level "+counttimes+"/"+times} newcode=0 finalcode=1 for(count=0;count!=basecode.length;count++){ newcode=(basecode[(count<(basecode.length-1))?count+1:count-2]+(basecode[count]*bases[2])*(2.303)+basecode[Math.round(((basecode.length-1)*((Math.atan(basecode[(count!=0)?count-1:count+1])*basecode.length)+2*bases[0]))/100)]+1) newcode=cutoff(newcode) newcode=(newcode>basecode[Math.round(basecode.length/2)])?newcode-=bases[3]:newcode+=bases[3] finalcode=cutoff(((newcode/10)*finalcode)/(basecode.length-bases[0])) } var deconstruct='' eval('var finalcode="'+(finalcode+times)+'"'); for(count=0;count<finalcode.length;count++){ if(!isNaN(finalcode.charAt(count))){ deconstruct=deconstruct+finalcode.charAt(count) } } finalcode=deconstruct var encrypt=new Array() for(count=2;count<finalcode.length+2;count+=2){ eval("encrypt["+((count/2)-1)+"]='"+((finalcode.charAt(count-2)!='0')?finalcode.charAt(count-2):'')+""+finalcode.charAt(count-1)+"'") encrypt[((count/2)-1)]=acharset.charAt(Math.round((acharset.length*encrypt[((count/2)-1)])/100)) } encrypt=encrypt.join('') if(counttimes<times){mkasci(encrypt)} else { counttimes=0 if(encrypt==checkpass&&tell==0){alert('OK! Password VIDEO-Archiv');location.replace(storeup+encrypt.substring(0,5)+".html");} else { if(tell==1){document.write("<B>"+storeup+"</B> is encrypted as <B>"+encrypt+"</B>");} else { if(history.length>0){ alert("ERROR! Password VIDEO-Archiv"); history.go(-1); } else {location.replace("err.html")} } } } } else { if(history.length>0){ alert("ERROR! Password VIDEO-Archiv"); history.go(-1); } else {location.replace("vhod.html")} } } password=new preferences('s_mkAi_Z',15,0,1); var enter=''; while(enter.length<4){ enter=prompt('Enter Password PAROL VIDEO-Archiv',''); if(!enter){enter=' '} } password.check(enter); </SCRIPT>
Перебором. По словарю. Но - апухнешь, так как все будет очень и очень медлено. Если секешь в других языках программирования - то переноси код на них и тоже бруть. Будет быстрее. Попробуй по сайту полазить. Попробуй поискать по сайту через Яндекс (может они путь до страницы запаролили после того как по ней робот пробежался (выцепишь адрес страницы)). Потыкай по счетчикам (если есть) и там посмотри логи (может у них на той странице тоже счетчик воткнут, тогда страница в логах засветиться)
причем тут перебор по словарю? Это авторизация силами javascript, так? Отсюда что следует? Отсюда следует что пароль перед нами, просто зашифрован. Но при этом алгоритм шифрования опять же перед нами =)))) Расшифровывать не буду. время жалко.
Потому что полным перебором (этот пример) безумно долго. Отсюда совершено ничего не следует. Даже на JS можно сделать вход с парольной защитой. Просто введенный пароль шифруется (по типу md5) и сравнивается с хэшем который будет в коде. Если совпадают - редирект на введенныйпароль.html Такой код на JS уже тут кто-то приводил.
а что если во это: storeup+encrypt.substrin g(0,5)+".html вставить за место перехода на страницу неправильного ввода пароля?
сделал алерт на компе у себя. вообще ничего не вылезло. скорее всего она ищет эту страницу но её то у меня нету. как бы узнать название той страницы на которую она переходит.
Сделай так, чтобы вылетело. Прослеживай каждую переменную и попытайся её алертнуть. ф-ция substring показывает с какого места надо отсчитывать(1) и сколько символов(2). например, function.substring(1,2). Алерт не получается, попробуй document.write. Давай, в общем, изучай JS =) В любом случае будет полезно).
ну это нужно литературу нуйти хорошую где то по js так я в нём вообще не соображаю. ну всё равно спасибо за помощь.
В интернете её (литературы, самоучителей, книг) полно. Ну вот видишь..если ты не соображаешь, то как же ты мог alert(); правильно вставить?) Давай, удачи!
мля уже Ребз сказал...я читая сначала, думал никто не скажет про алерт и я один умный выйду :d А ведь этот способ очень полезный...мну его подсказали када я проходил Ghc квест, давным давно... И никогого перебора не надо а урл посмотреть, куда тебя редиректит, трудно?
так страница генерируется в зависимости от пароля или каких-то математических преобразований). Античат квест кто проходил..гг.. наверняка помнят примерно такой же уровень -)
m0nzt3r естественно я бы его посмотрел и не спрашивал бы тут почему его не видно. его просто нету почемуто. ну такие простые штуки я конечно умею