|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-08-06, 04:08 PM | #1 |
長老會員
|
常見網頁加密方法和破解對策
常見網頁加密方法和破解對策(一)
右鍵彈出窗口加密。程序如下: <script language="JavaScript"> <!-- document.onmousedown=click function click() { if ( event.button==2) {alert('不准查看源文件') } if ( event.button==3) {alert('不准查看源文件') } } //--> </script> 此法對IE有特效,但在NC中右鍵定義為無法控制的幫助菜單,所以NC中event對像 無button屬性,在NC中右鍵->View Source可看源碼。 老式程序沒有if (event.button==3)的判斷句,不知哪位老前輩想出——先按下 左鈕不放再按下右鈕,然後鬆開左鈕再鬆開右鈕,快捷菜單就會彈出,點擊查看 源文件就能看到源碼。(左右鍵法?………^_^) 本菜鳥自編的變形: <script language="JavaScript"> <!-- document.onmousedown=click function click() { {window.location="index.html"; alert('不准查看源文件'); } } //--> </script> 由於在NC中無法定義左右鍵,只有加上window.location="index.html"令其一旦 激活鼠標事件就轉向首頁或其它Web頁,否則在NC中右鍵按了「確定」後,還會彈 出快捷菜單。缺點是在IE5.0左鍵也被禁止,不過在NC4.5只要按在鏈接上,仍能正 常轉向Web頁。 用亂碼顯示鏈接、調用地址加密。 利用某些函數把URL字符轉換成ASCII碼,從而達到隱藏鏈接Frame頁面和*.js,*. asp等腳本的目的。 返回ASCII碼escape(character),ASCII碼為%XX格式,XX是十六進制,如空格鍵為 %20。 返回字符unEscape(string) 如: <!—var Words=" %3Cframeset%20BORDER%3D%220%22%20FRAMEBORDER%3D%220%22 %20FRAMESPACING%3D%220%22%20rows%3D%22100%25%22%3E%0D%0A%20%20%3Cframe %20SRC%3D%22http%3A//XXX.XXX.COM/XXX/XXX/%22%20NAME%3D%22oos1%22%20"// --> </script> 我們只要運行以下語句,可還原「亂碼」 <script LANGUAGE="JAVASCRIPT"> var Words="亂碼" document.write(unescape(Words)) </script> 什麼??沒有輸出!呵呵,原亂碼是完整的JavaScript語句,當然不能顯示,把 %3C刪去破壞其格式,輸出frameset BORDER="0" FRAMEBORDER="0" FRAMESPACIN G="0" rows="100%"> 再把下一個%3C刪去,所有字符都出來了哦。 此法常與右鍵彈出窗口加密、調用腳本顯示頁面等共同使用。也可用全部保存法 ,清空緩存法破解。 輸入地址法(NC不適用) 查看首頁源文件,發現調用ok.js,在瀏覽器地址欄輸入http://www.*.163.net/ ok.js,確定把ok.js保存在硬盤。用記事本編輯ok.js找到一行if(str=="abc098" ),嗯,密碼是abc098。如果沒有指定*.js類型,可在文件類型中增加「打開」— >windows\wscript,「編輯」—>windows\notepad。(此法對特定腳本適用。本站 的澳門回歸倒計時就是參考了www.oyo.com.cn的*.js源文件,精確到秒的好東東。 ) 全部保存法(NC不適用) 利用IE的「文件」—>「另存為」把本頁保存選擇「Web頁,全部(*.htm;*.html) "。你會發現在存檔的目錄下有一和頁面同名的子目錄,裡面包含了所有作用於該 頁面,而目標不在本頁的圖片和腳本文件,及Frames頁源碼。 清空緩存法(NC,IE通用) 把windows\Temporary Internet Files或Edit\Preferences\advanced\cache\di sk cache folder的內容清空。然後瀏覽網站,源碼、Frames頁、腳本就在Tempo rary Internet Files和disk cache folder中。但在NC中,所有腳本都改了名, 辨認麻煩。(看多個網站,需多次清空和拷出源碼保存,苦!^_^) 關掉JavaScript法(IE不適用) 在NC中把advanced\Enable JavaScript屏蔽,可避免運行JavaScript,但對亂碼和 腳本無能為力,腳本可是特殊效果的關鍵哦。(具體見附:) 關掉Java法(NC,IE通用) 由於目前常用JavaScript的簡單加密,關掉IE和NC的Java並不能屏蔽JavaScript ,無實用價值。除非是用Java加密。 總結:建議使用全部保存法,只需存一次盤。一晚可存幾十個網頁,第二天再研 究。可見IE和NC的不同在於對腳本語言的支持不同,實乃我等剽竊者的一大福音 。^@^ 附: Java由Sun開發,Web頁中標識符為<Applet>,腳本後綴名為.class。 JavaScript由Netscape開發,標識符為<script language="JavaScript">。 JScript由Microsoft開發,標識符為<script language="JScript">,該標識符在 NC中會被忽略。 Java和JavaScript兩者不同。在IE高級-->Java VM中只能屏蔽Java,不能屏蔽Ja vaScript。只有NC能屏蔽兩者。 JScript絕大部分與JavaScript相同,除少數命令不同,一般可認為JScript等於J avaScript,但在IE5.0中這種差別得到了強化,可見微軟對網景的殘酷打擊。 常見網頁加密方法和破解對策(二) 關於口令密碼校驗 <script LANGUAGE="JAVASCRIPT"> <!-- loopy() function loopy() { var pass ="" while (pass != "login") //login為密碼 {pass = prompt("請輸入密碼")} alert("登陸成功") } //--> </script> 此法用了while()死循環,如果密碼不對,連用右鍵和菜單查看源文件的機會都沒 有,只有關閉Javascript了,不過IE無此功能,用NC吧。 只能輸入三次密碼的變形: <script LANGUAGE="JavaScript"> <!-- Begin function password() { var testV = 1; var pass1 = prompt('請輸入密碼:',''); while (testV < 3) { if (!pass1) history.back(); if (pass1 == "password") { //password為密碼 alert('登陸成功!'); window.location="time.html"; //正確鏈接的URL.html break; } testV+=1; var pass1 = prompt('密碼不對,請重新輸入'); } if (pass1!="password" & testV ==3) history.go(-1); //失敗則返回前一個文檔,可用window.location="***/***.ht ml"替換 return " "; } document.write(password()); </script> 以下為一實例(同樣也隱去地址,請原諒。) 首頁源碼 <script language="JavaScript"><!-- function dw(skey,msg) {document.write(codeIt(skey,msg));} var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz!\"\ \|#$%&\'()*+,-.\/:;<=>?@[\\]^_\t\`{}~\n"; function codeIt (mC, eS) {var wTG, mcH = mC.length / 2, nS = "", dv; for (var x = 0; x < eS.length; x++) {wTG = mC.indexOf(eS.charAt(x)); if (wTG > mcH) {dv = wTG - mcH; nS = nS + mC.charAt(48 - dv);} else {dv = mcH - wTG;nS = nS + mC.charAt(48 + dv);}} return nS;}//--></script> <script> dw(key,"FgwhqjfW,\[*;#\[;=EX.ydy%whqjfXD00FYKK0tnysE\n0tnys}E\n0KKD00F IgwhqjfD");</script> <script> dw(key,"FgwhqjfW,\[*;#\[;=EX.ydy%whqjfXW%&?EXdjulwhJfbfXDW00FIgwhqjfD" );</script> <script> dw(key,"FgwhqjfW,\[*;#\[;=EX.ydy%whqjfXW%&?EXdjjgJfbfXDWWWW00FIgwhqjfD ");</script> <script> dw(key,"FgwhqjfW,\[*;#\[;=EX.ydy%whqjfXD00FYKK0telwfqklWmyqlPO030mumxu hEvkwemulfJynnJeguhlymuJdyneu0jyggEvkwemulfJynnJjyggckhvJdyneu0ulwhajf qklPO0jyggckhvPO020KKD00FIgwhqjfD");</script> <script> dw(key,"FgwhqjfWnylseysuEX.ydy%whqjfXDFYKK0telwfqklW*uc qlvkcPO3cqlvkc JkjulPXvulspqJrfmXLXXLXruqsrfE`\n\nLcqvfrE{`\nLfkknxyhEaugLvqhuwfkhqug EaugLgfyfegEaugLgwhknnxyhgEaugLhugqZuEaugLmulexyhElkXOG20IIWKKDFIgwhqj fD");</script> 其實源文件並不複雜,只不過有幾串特長字符讓人迷惑罷了。查看源文件,沒有 進入會員區的調用和鏈接,故此五行亂碼一定是JavaScript的調用和鏈接。觀察 發現函數codeIt是密碼計算式,函數dw是輸出JavaScript語句,試著把第一行的 F刪去,破壞其語句結構發現輸出script LANGUAGE="JavaScript">再把gwhqjfW, \[*;#\[;=EX.ydy%whqjfXD00F刪去。輸出!-- flag=0 flag2=0 -->由此可得出五 行亂碼為 script LANGUAGE="JavaScript">"> <!-- flag=0 flag2=0 -->-> t/script> script LANGUAGE="JavaScript">" SRC="vpencr.txt"> t/script> script LANGUAGE="JavaScript">" SRC="vpps.txt"> t/script> script LANGUAGE="JavaScript">"> t!-- function main() { member=document .all.username.value pass=document.all.password.value encryption() pass word() } --> t/script> script LANGUAGE="JavaScript"> !-- function NewWindow(){window.open("de ngji.htm","","height=400,width=340,toolbar=yes,directories=yes,status= yes,scrollbars=yes,resize=yes,menubar=no");} // --> t/script> 當然實際中困難重重,曾頭腦發昏地考慮用計算器算出每個nS值—^@^,而且F的值 有出入,應為"<",但已經無關緊要了。 在IE地址欄輸入vpencr.txt,vpps.txt,dengji.htm的URL,獲得vpencr.txt和v pps.txt,並證實dengji.htm 的URL正確。 vpencr.txt(密碼表)源碼 function encryption() { mm = "Z" k = "j" b = "p" mmmm = "&" ccc = "6" l = "i" c = "q" m = "s" abcd = "m" o = "n" u = "z" e = "d" gg = "U" p = "u" jj = "O" v = "a" j = "y" x = "c" t = "h" h = "k" vv = "C" * * * * * y = "t" lll = "." mmm = "," cccc = "]" g = "l" dddd = "{" eeee = "}" ffff = "" gggg = "|" hhhh = "!" iiii = "@" jjjj = "#" kkkk = "$" llll = "%" nnnn = "(" } 奇怪,這個密碼表我好像在哪見過? vpps.txt源碼 function password() { if(member==h+l+g+g+p+m+v) { if(pass==v+y+y+v+x+h) {alert("PASS、、、歡迎來到成員區") window.location.href = y+u+lll+t+y+abcd flag2=1} } if(member=="") {} else { if(flag==3) {window.location.href = "http://***.***.com" flag2=1} if(flag2==1) {} else {alert ("現在要格式化你的硬盤!!!!————騙你的,呵呵") flag=flag+1} } } 對照vpencr.txt,member=h+l+g+g+p+m+v=killusa, pass=v+y+y+v+x+h=attack, href=y+u+lll+t+y+abcd=tz.htm。搞定!當然也可把會員區的URL改為window.op en(y+u+lll+t+y+abcd,"","location=0");叫他進了會員區也不知道自己在哪個目 錄下。 使用密碼表好像成了一種潮流,好處很多啦,無須特殊轉換,就能使"雞"="鴨" ^@^,只不過當前個人主頁沒有文件權限,看懂密碼表比看懂函數計算式容易多了 。有一些個人主頁就是直接調用密碼表,不隱藏地址,很容易被人copy下分析。 |
__________________ 給自己看也給所有需要這些話鼓勵的人看! 認真不一定會得到美好的結果,但是不認真就一定沒有 想要有什麼結果,就秉持你的雙手 放手去做 總比什麼都沒付出最後失敗了才嘆氣來的好吧 沒努力的人.沒有資格說放棄 努力過的人.更要有勇氣繼續努力下去
|
|
送花文章: 1,
|