网站目录收录网站方式:1.人工手动审核。2.自助审核(你的网站在权重3、PR4以上,挂上本站友链->点击友链->自动审核通过。)
北京 天津 上海 广东 深圳 河北 河南 新疆 重庆 四川 贵州 湖南 湖北 云南 广西 宁夏 青海 甘肃 陕西
西藏 海南 山东 福建 安徽 浙江 吉林 山西 江西 江苏 辽宁 黑龙 内蒙 澳门 香港 台湾 日本 韩国 美国
当前位置:站长啦网站目录 » 新闻资讯 » 站长新闻 » 漏洞预警 » 文章详细 订阅RssFeed

公开动力文章系统漏洞的相关文章下载

来源:黑吧安全网 浏览:1068次 时间:2014-04-29
简介:一.概述 My动力文章管理系统是由asp163.net开发的一套文章管理系统,最近由于要做个网站就对他的代码研究了一下,呵呵,虽然webboy对My动力做了不少安全措施,防止了可能的sqlinjection攻击,但这样似乎给

 一.概述

        My动力文章管理系统是由asp163.net开发的一套文章管理系统,最近由于要做个网站就对他的代码研究了一下,呵呵,虽然webboy对My动力做了不少安全措施,防止了可能的sqlinjection攻击,但这样似乎给人一种非常安全的错觉,我们一起来分析一下吧。
        我们先到网站上面注册一个用户,进入用户的文章管理看看,可以添加软件,添加图片……,看看可以上传东西吧,但是My动力文件管理系统似乎限制只允许已定义的文件后缀上传,如软件只允许rar|zip|exe|mpg|rm|wav|mid格式,有没有办法突破呢?
二.漏洞详细分析过程
        其实仔细研究一下是发现有可能上传ASP文件的!大家看Upfile_Soft.asp的这一段代码(其他用于上传的文件类似):
const UpFileType="rar|zip|exe|mpg|rm|wav|mid"        '定义了可以上传的文件类型
...
dim EnableUpload         '定义了是否允许上传的关键变量
...
FoundErr=false        '默认FoundErr变量为假,即没有发现错误(哈哈,关键变量哦,看下面)
EnableUpload=false        '默认EnableUpload变量为假,即不能上传(哈哈,关键变量哦)
...
for each formName in upload.file'列出所有上传了的文件(!关键,注意这个FOR循环!)
set ofile=upload.file(formName)          '生成一个文件对象
...
arrUpFileType=split(UpFileType,"|")        '取得定义的可以上传的后缀名                
for i=0 to ubound(arrUpFileType)
if fileEXT=trim(arrUpFileType(i)) then
EnableUpload=true        'hoho,EnableUpload变量改变了!
exit for
end if
next
if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then '呵呵,只要是ASP,ASA,ASPX的后缀就废掉了,难怪海洋顶端上不去阿!
EnableUpload=false
end if
if EnableUpload=false then
msg="这种文件类型不允许上传!\n\n只允许上传这几种文件类型:" & UpFileType
FoundErr=true                        'hoho,FoundErr变量改变了!
end if
...
if FoundErr<>true then                        '又是一个重要地方,看来FoundErr变量是能否上传的关键,那如何决定FoundErr变量呢?(草草虫ps:偶可以瞪大了眼睛看啊)
randomize
ranNum=int(900*rnd)+100        '生成一个随机数                filename=SavePath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt        '没有改变上传文件的后缀,爽阿
        ...
        ofile.SaveToFile Server.mappath(FileName)   '保存文件
        response.write "软件上传成功!软件大小为:" & cstr(round(oFileSize/1024)) & "K"
        strJS=strJS & "parent.document.myform.DownloadUrl1.value='" & fileName & "';" & vbcrlf        '晕拉~还返回上传后改的名字,这回好了,不用猜了。
        strJS=strJS & "parent.document.myform.SoftSize.value='" & cstr(round(oFileSize/1024)) & "';" & vbcrlf
    注:...表示省略了部分代码
    大家研究一下这段代码会发现,My动力使用了化境无组件上传类来上传,而化境的无组件上传类可以上传多个文件,for each formName in upload.file这一句就是用于取得所有form中取得的文件名。第二个for循环for i=0 to ubound(arrUpFileType)用于检测文件类型,如果不满足条件则关键变量EnableUpload为默认值false,而EnableUpload为默认值false时又导致关键变量FoundErr值得改变为true,我们的目的就是想办法避免FoundErr值的改变,让他保持默认值false,我们注意到if fileEXT=trim(arrUpFileType(i)) then这一句如果满足条件则EnableUpload为真,那么当有多个文件用于上传时,作者考虑到了么?显然是没有的,虽然各上传界面的都是只有一个上传提交框,但我们可以在本地自己构造阿~。
这样我们改变action到远程地址,提交两个文件的话,在asp文件中,第一个for循环检查第一个文件sql2reg.gif,第2个for循环检查文件后缀gif,显然满足条件因此可以上传EnableUpload=true,然后逐步跳过各语句,由于默认FoundErr=false,文件上传了!然后第一个for循环检查文件2:sqlexec.cer文件,第二个for循环发现不满足
文件后缀条件,跳过,我的文件不是asp等后缀,再跳过if语句,呵呵,EnableUpload变量保持为第一次循环的true值,这样保证了FoundErr也没改变,哈哈哈哈,木马上传成功!!!
    这里用了一个小技巧,大家肯定发现了,我的asp木马没用asp后缀,是因为程序作了限制,但是限制的不全,因为iis中调用asp文件的是asp.dll,asp.dll的应用程序映射还包括.cdx和.cerok拉,我们的.cer后缀一样可以运行。
三.小结Exploits 
    再总结一下发现过程,我们倒推一下,FoundErr变量决定能否上传而且只要保持默认值就可以上传,但EnableUpload变量决定了FoundErr的改变,只要能改变EnableUpload变量的默认值false就好了即要EnableUpload=true这一句执行,呵呵

[1] [2]  下一页


0

版权与免责声明:

凡注明稿件来源的内容均为转载稿或由网友用户注册发布,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:https://top.cnzzla.com/artinfo/838.html

好玩的手游下载

猜你喜欢

推荐站点

  • 福州小程序开发福州小程序开发

    福州好小蚁科技提供专业的微信小程序开发、软件定制、手机APP开发、网站开发等高端定制外包服务,价格美丽,服务周到.一对一项目对接,不满意退全款!预约电话:13107632710 胡小春!福州好小蚁科技有限公司是福建福州网站app等技术开发优秀网络公司。

    www.fzant.com
  • 世界时间网世界时间网

    世界时间网为您提供世界各地精准时间,北京时间校准器,标准时间,世界各地时间与北京时间对比,时间换算等,希望对您有所帮助。

    top.cnzzla.com/time
  • 科技镇科技镇

    科技镇 | 关注科技、娱乐、人文、生活!

    www.kejizhen.com
  • 心动网址导航心动网址导航

    心动网址导航精选了国内国外著名的网站、好玩的、好看的、有趣的国内国外网站以及实用的、优秀的国内国外网站,包括国外视频、国外购物、国外交友、国外新闻等多种类型 同时提供精品行业分类目录提交,让用户全方位了解国内国外互联网动态!

    xd00.com
  • 门户网址-优秀网站导航门户网址-优秀网站导航

    门户网址-优秀网站导航,精选网址导航,免费分类目录提交,实用酷站大全。

    top.mhwz.cn

最新优秀网站