手机
当前位置:查字典教程网 > >脚本攻防 >万博企业网站管理系统注入漏洞(MemberLogin.asp)
万博企业网站管理系统注入漏洞(MemberLogin.asp)
摘要:这两天拿站的时候,好几回都遇到个叫万博的企业管理系统,今天有时间就下载过来看了看,找到了个注入漏洞,郁闷的是,得手工,没法用工具,累人的事。...

这两天拿站的时候,好几回都遇到个叫万博的企业管理系统,今天有时间就下载过来看了看,找到了个注入漏洞,郁闷的是,得手工,没法用工具,累人的事。因为已经找到了一个,我就没兴趣接着往下看了。

这个注入漏洞发生在html/MemberLogin.asp文件里,在Include下有NoSqlHack.Asp文件也没调用,呵呵,就有了我们利用的地方了。

MemberLogin.asp源码如下:

复制代码代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<% Option Explicit %>

<%Response.Charset="utf-8"%>

<!--#include file="../Include/Const.asp"-->

<!--#include file="../Include/ConnSiteData.asp"-->

<!--#include file="../Include/Md5.asp"-->

<%

if request.QueryString("Action")="Out" then

session.contents.remove "MemName"

session.contents.remove "GroupID"

session.contents.remove "GroupLevel"

session.contents.remove "MemLogin"

response.redirect Cstr(request.ServerVariables("HTTP_REFERER"))

response.end

end if

Public ErrMsg(3)

ErrMsg(0)="·登录名不正确,请返回。"

ErrMsg(1)="·登录密码不正确,请返回。"

ErrMsg(2)="·帐号非使用状态,请返回。"

dim LoginName,LoginPassword,VerifyCode,MemName,Password,GroupID,GroupName,Working,rs,sql

LoginName=trim(request.form("LoginName"))

LoginPassword=Md5(request.form("LoginPassword"))

set rs = server.createobject("adodb.recordset")

sql="select * from NwebCn_Members where MemName='"&LoginName&"'"

rs.open sql,conn,1,3

if rs.bof and rs.eof then

WriteMsg(ErrMsg(0))

response.end

else

MemName=rs("MemName")

Password=rs("Password")

GroupID=rs("GroupID")

GroupName=rs("GroupName")

Working=rs("Working")

end if

if LoginPassword<>Password then

WriteMsg(ErrMsg(1))

response.end

end if

if not Working then

WriteMsg(ErrMsg(2))

response.end

end if

if UCase(LoginName)=UCase(MemName) and LoginPassword=Password then

rs("LastLoginTime")=now()

rs("LastLoginIP")=Request.ServerVariables("Remote_Addr")

rs("LoginTimes")=rs("LoginTimes")+1

rs.update

rs.close

set rs=nothing

session("MemName")=MemName

session("GroupID")=GroupID

'===========

set rs = server.createobject("adodb.recordset")

sql="select * from NwebCn_MemGroup where GroupID='"&GroupID&"'"

rs.open sql,conn,1,1

session("GroupLevel")=rs("GroupLevel")

rs.close

set rs=nothing

'===========

session("MemLogin")="Succeed"

session.timeout=60

response.redirect Cstr(request.ServerVariables("HTTP_REFERER"))

response.end

end if

%>

看到了,LoginName未作过滤,直接代入查询,因此产生了这个注入,就是利用的方法有点麻烦,我试了下,没办法用工具,郁闷了。

手工如:wzasdf' and exists (select * from [nwebcn_admin]) and '1'='1

修复方法:LoginName=trim(request.form("LoginName"))

用LoginName=server.htmlencode(trim(request.form("LoginName")) )

或加入include目录里面的NoSqlHack.Asp记载一下也可以。

FROM http://www.st999.cn/blog

【万博企业网站管理系统注入漏洞(MemberLogin.asp)】相关文章:

Phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞

SQL注入攻防入门详解 [图文并茂] 附示例下载

ECSHOP php商城系统过滤不严导致SQL注入漏洞

PoisonIvy Rat 远程溢出实战

脚本入侵-上传漏洞总结篇(臭小子)

详解如何通过“鼠洞”控制电脑

科讯kesion 6.x – 7.06 SQL 注射漏洞VBS版利用工具第二版

MSSQL 2005 入侵提权过程分享

ODOR1–PHP extract 后门使用方法

利用ntfs流隐藏你的一句话木马的方法

精品推荐
分类导航