当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-073904

漏洞标题:YiDacms 最新版SQL注入漏洞二处

相关厂商:yidacms.com

漏洞作者: xfkxfk

提交时间:2014-08-26 19:06

修复时间:2014-11-21 19:08

公开时间:2014-11-21 19:08

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-26: 细节已通知厂商并且等待厂商处理中
2014-08-31: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-10-25: 细节向核心白帽子及相关领域专家公开
2014-11-04: 细节向普通白帽子公开
2014-11-14: 细节向实习白帽子公开
2014-11-21: 细节向公众公开

简要描述:

YiDacms 最新版SQL注入漏洞二处

详细说明:

易达CMS 企业建站系统
当前最新版本是:YidaCms X3.2(20140718)版
文件/Yidacms/user/user_message.asp
第一处SQL注入:

yidacms_email = request("yidacms_email")
if yidacms_email = "x" then
email = trim(request.form("email"))
if shuaiweb_useremail = email then
response.write "<script language=javascript> alert('不能自已给自已发消息!');history.go(-1);</script>"
response.end
end if
set rs=server.createobject("adodb.recordset")
sql="select * from shuaiweb_user where shuaiweb_useremail='"&trim(request.form("email"))&"' ORDER BY ID ASC"
response.write(sql)
rs.open sql,dbok,1,1
if rs.eof then
response.write "<script language=javascript> alert('没有这位会员,请重新输入会员账户!');history.go(-1);</script>"
response.end
end if
%>


直接将email带入SQL注入,导致sql注入
第二处SQL注入:

<form id="form2" name="form2" method="post" action="?yidacms_email=r">
<table width="98%" border="1" cellpadding="10" cellspacing="0" bordercolor="#cccccc" style="border-collapse:collapse; margin-top:40px;"align="center">
<tr>
<td>接收账户 : <%=email%><input type="hidden" name="shuaiweb_email" value="<%=email%>"/><input type="hidden" name="shuaiweb_emailt" value="<%=shuaiweb_useremail%>"/></td>
</tr>
<tr>
<td><textarea name="shuaiweb_emailcontent" id="content" style="width:100%;height:200px;visibility:hidden;"></textarea></td>
</tr>
<tr>
<td>
<input type="submit" name="Submit2" value="发 送" style=" background:URL(../template/user/images/30.gif); width:66px; height:26px; border:0px; color:#FFFFFF;" /></td>
</tr>
</table>
</form>
<%
end if
if request("yidacms_email") = "r" then
set rs=server.createobject("adodb.recordset")
sql="select * from shuaiweb_usermessage"
rs.open sql,dbok,3,2
rs.addnew
rs("shuaiweb_email")=filter_Str(trim(request.form("shuaiweb_email")))
rs("shuaiweb_emailt")=filter_Str(trim(request.form("shuaiweb_emailt")))
rs("shuaiweb_emailcontent")=filter_Str(trim(request.form("shuaiweb_emailcontent")))
'rs("shuaiweb_userzhuangtai")=trim(request.form("shuaiweb_userzhuangtai"))
'rs("shuaiweb_useradmin")=trim(request.form("shuaiweb_useradmin"))
rs("time")=Now ()
rs("shuaiweb_yuedu")=0
rs.update
response.write "<script language=javascript> alert('发送成功!');location.replace('user_message.asp?email=email');</script>"
rs.Close
set rs=nothing
end if
%>
</body>


在update时,shuaiweb_userzhuangtai和shuaiweb_useradmin没有使用全局过滤filter_Str函数,导致SQL注入。

漏洞证明:

第一处SQL注入证明:
这里我们打印一下SQL语句。

555.png


存在此用户,email显示在了接收账户处

444.png


用户不存在,无法发送信息
第二处就不在证明了,发送信息时,shuaiweb_userzhuangtai和shuaiweb_useradmin存在注入。

修复方案:

不管全局有没有用,既然用了就全部用上,在进入数据库的参数上都加上全局过滤先。

版权声明:转载请注明来源 xfkxfk@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-11-21 19:08

厂商回复:

最新状态:

暂无