专业编程基础技术教程

网站首页 > 基础教程 正文

彻底禁止查看网页源代码及破解

ccvgpt 2024-11-25 10:18:21 基础教程 1 ℃

彻底禁止查看网页源代码及破解


彻底禁止查看网页源代码及破解

一般攻击某台主机或者某个网站过程的步骤中,有一步是要获取拥有高级权限的帐号。比如系统的计算机管理员帐号、网站后台的超级管理员帐号、FTP上传帐号、邮件系统登陆帐号。获取帐号之后就可以做下一步的添加后门、修改网站、下载上传文件、获取重要资料等操作。最后再扫除入侵痕迹。
获取拥有高级权限帐号办法有两种:一是提升某个已知密码的只拥有普通权限的帐号;二是直接破解拥有高级权限的帐号密码。
对于第一种办法,一般是利用系统或程序的漏洞来达到目的。下面主要讲第二种方法。
要破解拥有高级权限的帐号密码,首先要知道拥有高级权限的帐号名称,再不惜一切手段破解其密码。帐号名称可以通过对方的网站、邮件地址、一些默认帐号、网络监听等手段获得,比如对方网站上留下的管理员邮件帐号、默认的帐号administor、guest、test等。
获取的系统帐号在WINDOWS下可以用NET USE命令来尝试密码,如果熟悉批处理文件,还可以写成脚本或程序,并创建密码字典,加快其破解进度。
对于网站后台管理员帐号,可以在论坛或者其他地方很容易得到,如果对方的登陆机制不是很完善的话,只要懂一点VB和ASP知识,破解起来还是很容易的。
对于VB,要会使用其中的Internet Transfer 控件。对于ASP,要明白表单提交参数的工作原理。
假如某个网站http://xxx.xxx.com/login.asp有以下登陆代码
<Form method="POST" action="check.asp">
超级用户帐号:<input type="text" name="name">
超级用户密码:<input type="password" name="password">
<input type="submit" value="确定登陆" name="submit">
</form>
其中你填的密码会保存到name变量中,密码会保存到password中,并以以下方式被提交
http://xxx.xxx.com/check.asp?name=*****&password=********其中*号内容为你填的内容。
知道这个之后,你就可以利用VB里的Internet Transfer 控件的OpenURL 或 Execute 方法来尝试登陆了。
主要代码如下:
Dim strURL As String
strURL = "http://xxx.xxx.com/check.asp?name=*****&password=********"
Text1.Text = Inet1.OpenURL(strURL)
可以看到strURL是一个字符串变量,你构造不同的字符串就可以打开不同的页面。
假如有个管理员帐号为admin,要想破解密码,就可以构造很多个字符串作为参数来打开页面,
strURL = "http://xxx.xxx.com/check.asp?name=admin&password=********"(*部分为你要尝试的密码,可以用穷举,也可以用密码字典)
那怎么样知道登陆成功呢?
登陆成功之后返回的页面内容是不同的,所以就可以利用这个来判断。
上面的Text1.Text = Inet1.OpenURL(strURL)是将登陆的结果返回给Text1.Text
可以统计出错误登陆的结果的特征,比如结果字符长度,如果返回的不是错误登陆结果,那就是登陆成功,
就暂停,并显示密码
楼主的原理不假!(我估计现在的暴力解密码程序都是这么回事!)
只是,现在网站一般对此都有防范的!
一个比较简单的限制例子!
在一定时间内,登陆输错密码不能超过三次。。。
象这么强行破解,网站很容易就发觉的!
特别是现在的密码大多在6位数字以上!
即使是用程序破解,估计也不是短时间内就可以奏效的!
顺便把相关的资料转一下!
表单的提交方式POST和GET有什么区别
--------------------------------------------------------------------------------
沈陶亮 2006-02-13, 15:08
  表单的提交方式POST和GET有什么区别 ?
  解决思路:
两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上。
  具体步骤:
  Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:
  1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示。
图1.4.3 Get方式提交表单后的地址栏
  而Post提交后地栏不变,如图1.4.4所示。
图1.4.4 Post方式提交表单后的地址栏不变
  2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取:
<%@language="VBScript" Codepage="936"%>
<html>
<head>
<title> 表单提交方式测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form method="post" action="<%=Request.ServerVariables("Script_Name")%>">
提交数据:
<input name="oStr" type="text">
<br>
提交方式:
<select name="select" onchange="this.form.method=this.value">
<option value="Post" selected>Post</option>
<option value="Get">Get</option>
</select>
<br>
<input type="submit" name="Submit" value="提交">
</form>
<%
if Request("Submit")<>"" then
Response.Write "通过"&Request.ServerVariables("Request_Method")&"方式提交的数据为:"
if Request.ServerVariables("Request_Method")="GET" then
Response.Write Request.QueryString("oStr")
else
Response.Write Request.Form("oStr")
end if
end if
%>
</body>
</html>
  注意:虽然两种提交方式可以统一用Request("oStr")来获取提交数据,但是这样对程序效率有影响,不推荐使用。
  特别提示
  通过IIS运行本例代码(用http://localhost/method.asp这种方式来浏览,有关IIS的安装和配置,请参考第四部分),输入所提交的数据,选择Post方式提交,将看到图1.4.4所示的效果。选择Get方式提交,效果将如图1.4.3所示。
  特别说明
  一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。本例中用到的表单的属性解释(ASP部分请参考第四部分):
Get把参数添加到action属性指定的地址中,并以锚方式打开。
Post通过HTTP post处理发送数据。

最近发表
标签列表