ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·VisualStudio.NET_2003及其 MSDN 下载地址
·session的用法具体解说
·MD5加密算法 ASP版
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·ASP.net中md5加密码的方法
·ASP模拟MVC模式编程
·ASP.NET编程中的十大技巧

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
关于Oblog 2.52 help.asp漏洞的修补问题

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

关于Oblog 2.52 help.asp漏洞的修补问题

这是一件很有意思的事情。

OBlog是一套基于asp的Blog系统,目前的版本是2.52吧。

前些日子,出现了个help.asp文件漏洞,

可以查看任意文件的源文件,包括asp文件,后果自然是严重的。


现在,这个问题官方已经修补了,修改后的关键代码如下:

<%
fname=trim(request("file"))
fname=lcase(fname)
fname=replace(fname,"asp","")
if fname="" then
 fname="help/h_sysmain.htm"
end if
if right(fname,4)=".htm" then 
 show_help="当前位置:<a href='index.asp'>首页</a>→blog使用帮助<hr noshade>"
 show_help=show_help&adodb_loadfile(fname)
 show=replace(show,"$show_list$",show_help)
 response.Write show
 call bottom()
else
 response.Write("输入文件不正确")
end if
%>


昨天某个QQ群里,一个用户突发奇想,说是修补后的上面这段代码依然有问题。

下面来看看他的分析思路:

修补的代码主要是两方面,一个是替换掉所有的asp字符串,防止查看asp文件,二是只有后缀是htm的文件才能用。

首先,看看替换asp的代码:

fname=replace(fname,"asp","")

所以如果访问help.asp?file=conn.asp的时候,就变成了help.asp?file=conn.了

那么如果我们访问help.asp?file=conn.aaspsp呢,经过替换以后就变成了help.asp?file=conn.asp了。

所以,这个替换asp的保护措施不是很可靠的,还是可以绕过去的。


那么,再看第二点,就是怎么绕过后缀是.htm的检查

他的思路是这样的:

前段时间不是有个上传漏洞吗,我们一般都是先抓包,然后修改数据,

构造文件名,如a.asp%00.gif,

这样,上传程序还会以为这就是gif文件,而实际保存的时候只保存成a.asp了。

那么在这里,不是也可以吗?

构造一个conn.asp%00.htm的文件名,这样就能够欺骗过fname的检测,

然后在adodb_loadfile(fname)函数里,真正打开的是conn.asp文件,

这样就达到了目的。

 

从他的思路来看,还是比较合乎逻辑的,

而且,他分析的第一步,就是绕过对asp的检查也是正确的

只是第二步,他的理解还是有误的。

好多人知道上传漏洞,可是到底什么是上传漏洞,

好多人就不清楚了。

而且在asp中,和php,perl里面又有些不同。

具体可以参考一下这个文档,

http://security-assessment.com/Papers/0x00_vs_ASP_File_Uploads.pdf

相信对大家理解上传漏洞还是比较有帮助的。


 




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有