 |
Oblog 2.52 读本地任意文件漏洞分析及解决 |
|
|
| Oblog 2.52 读本地任意文件漏洞分析及解决 |
|
| 作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-25 10:42:26 |
|
Oblog 2.52 是由 http://www.oioj.net/ 开发维护一个中文blog系统,在中国用户量极大!
我们来分析一下有漏洞的文件 ,user_help.asp help.asp 这两个文件问题,我拿user_help.asp来说。 user_help.asp 中只有一小段代码
<% dim show,fname fname=trim(request("file")) fname=replace(fname,"asp","") if fname="" then fname="help/h_main.htm" end if show=adodb_loadfile(fname) %> | 主要功能就是接收文件并读取文件内容显示。adodb_loadfile 看了没什么问题 user_help.asp 可以接收参数 file 读本地文件,如果我这样试试能不能读出来
http://blog.77169.com/user_help.asp?file=conn.asp
查看源代码,没有显示读出conn.asp 的内容。
大家看这一行
fname=replace(fname,"asp","")
功能 过滤 小写的asp,只过滤了小写 .asp 这就是一个很明显的漏洞!
如果我们将asp改成大写会怎么样呢?
http://blog.77169.com/user_help.asp?file=conn.asp
再查看源程序,OK,
我已经看到了 conn.asp 中的内容!
推广思路: 如果对方网站结构是这样的
/ 主目录 /bbs /oblog
访问地址分别是这样的 http://www.77169.com/bbs http://www.77169.com/oblog
现在我们可以利用这个漏洞读取bbs中的配置文件
比如:
http://blog.77169.com/user_help.asp?file=../bbs/conn.ASP
可以跨目录读文件!
dim show,fname fname=trim(request("file")) [color=Red]fname=lcase(fname)[/color] fname=replace(fname,"asp","") if fname="" then fname="help/h_main.htm" end if show=adodb_loadfile(fname) |
加上一句 fname=lcase(fname)
lcase 这个函数主要功能是: LCase LCase(string) 将string字符串里的所有大写字母转化为小写字母 这样就不可以读 asp文件了,oblog目录 只有.asp 和.htm 类型的文件! 这样可以保证oblog的安全了!
但是,如果asa 或者 其实类型的怎么办?跨目录的问题怎么办?官方给出了一个解决方法
<% dim show,fname fname=trim(request("file")) fname=lcase(fname) fname=replace(fname,"asp","") if fname="" then fname="help/h_main.htm" end if if right(fname,4)=".htm" then show=adodb_loadfile(fname) %> |
这样打上补丁之后,只能读 .htm的本地文件!基本上可以保证安全了。
:补丁地址,点击下载 【转自世纪安全网 http://www.21safe.com】
|
|
| 文章录入:admin 责任编辑:admin |
|
|
上一篇文章: L-blog的cookie欺骗漏洞分析 下一篇文章: MolyX 漏洞分析 |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|
|