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

所属分类: 网络安全 / 脚本攻防 阅读数: 598
收藏 0 赞 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("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
更多精彩内容其他人还在看

php intval()函数使用不当的安全漏洞分析

intval函数有个特性:
收藏 0 赞 0 分享

web 页面 一些sql注入语句小结

web 页面 一些sql注入语句小结,对于开发人员来说一定要注意的事项。
收藏 0 赞 0 分享

ThinkPHP framework 任意代码执行漏洞预警

最近官方发布了一个安全补丁,官方表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码
收藏 0 赞 0 分享

php后门木马常用命令分析与防范

php后门木马对大家来说一点都不陌生吧,但是它的种类您又知多少呢?那我们应该如何防范呢
收藏 0 赞 0 分享

利用Request对象的包解析漏洞绕过防注入程序

利用Request对象的包解析漏洞绕过防注入程序,想要学习安全的朋友可以参考下
收藏 0 赞 0 分享

网站防范 "上传漏洞"入侵的方法

“上传漏洞”入侵是目前对网站最广泛的入侵方法。90%的具有上传页面的网站,都存在上传漏洞。本文将介绍常见的上传漏洞及其防范技巧。
收藏 0 赞 0 分享

如何检测SQL注入技术以及跨站脚本攻击

在最近两年中,安全专家应该对网络应用层的攻击更加重视。因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循 安全代码进行开发,攻击者将通过80端口进入你的系统。广泛被使用的两个主要攻击技术是SQL注入[ref1]和CSS[
收藏 0 赞 0 分享

Oracle的使用技巧以及脚本代码

如何查看ORACLE的隐含参数?ORACLE的显式参数,除了在INIT.ORA文件中定义的外,在svrmgrl中用 show parameter * ,可以显示。但ORACLE还有一些参数是以 _ ,开头的。如我们非常熟悉的_offline_rollback_segments等。
收藏 0 赞 0 分享

php包含漏洞替代技术的方法与介绍 php文件包含漏洞详解

php开发者们犯得一个基本的错误是把一个不正当的变量传递给系统函数,特别是include()和require()这两个函数。 这个常见的错误导致了众所周知的远程文件包含漏洞和本地文件包含漏洞。
收藏 0 赞 0 分享

一次奇遇的渗透

其实这一步可以完全省略,都说了是奇遇了。其实就是检查下自己的站点是否安全
收藏 0 赞 0 分享
查看更多