加密网页破解,常见网页加密方法和破解对策

常见网页加密方法和破解对策 - 网络安全 - 电脑教程网

常见网页加密方法和破解对策

日期:2006-12-03   荐:

常见网页加密方法和破解对策(一)

右键弹出窗口加密。程序如下:

<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)

[1] [2] [3] [4] [5]  

"。你会发现在存档的目录下有一和页面同名的子目录,里面包含了所有作用于该
页面,而目标不在本页的图片和脚本文件,及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>

 [1] [2] [3] [4] [5]  

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] [2] [3] [4] [5]  

ASP 编程中 15 个非常有用的例子
1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align="center" >< font size="4" face="Arial" >< b >
The Physical path to this virtual website is:
< /b >< /font >
< font color="#FF0000" size="6" face="Arial" >
< %= Server.MapPath("\")% >
< /font >< /p >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
If Instr(strBrowser,"MSIE") < > 0 Then
  Response.redirect("ForMSIEOnly.htm")
Else
  Response.redirect("ForAll.htm")
End If

3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff("d",Now,"01/01/1990")
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998

4.如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
% >
显示
< img src="< %=dpic% >" >

5.如何回到先前的页面
答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >
或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >

6.如何确定对方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >

7.如何链结到一副图片上
答:< % @Languages=vbscript % >
< % response.eXPires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
% >

8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status="401 not Authorized"
response.end
% >

9.如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
< % form method="post" action="mynextpage.asp" >
< % for each item in request.form % >
< input namee="< %=item% >" type="HIDDEN"
value="< %=server.HTMLEncode(Request.form(item)) % >" >
< % next % >
< /form >

10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
< % yourVar="测试对话框"% >
< % script language='javascript' >
alert("< %=yourvar% >")
< /script >

11.有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows Script Encoder,它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装一个ie5就有了)才能执行。

12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))

 [1] [2] [3] [4] [5]  


13.global.asa文件总是不起作用?
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?

14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager - > 选择default web site - >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。

15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component"
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。

(出处:http://www.sheup.com)


 [1] [2] [3] [4] [5] 


第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component"
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。

(出处:http://www.sheup.com)


 [1] [2] [3] [4] [5] [6] 


15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component"
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。

(出处:http://www.sheup.com)


 [1] [2] [3] [4] [5] [6] [7] 

标签: