asp.net两个小漏洞

本文介绍了ASP.NET中Page.ResolveUrl()方法及VirtualPathUtility.IsAppRelative方法存在的安全问题。Page.ResolveUrl()方法在处理带有://的参数时存在漏洞,直接返回原始字符串;VirtualPathUtility.IsAppRelative对于特殊输入会抛出HttpException异常。这两个问题已在.NET 4.0中修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Page.ResolveUrl()方法。
例如:
Page.ResolveUrl("~/test.aspx?param=http://www.test.com")会直接返回“~/test.aspx?param=http://www.test.com”。

原因:在相对URL转换为绝对URL时直接在Sering中搜索 "://" ,如果找到,就直接返回了。因此,如果你传递一个带://的参数就会直接返回原字符串。

发现:http://www.codeproject.com/Articles/53460/ResolveUrl-in-ASP-NET-The-Perfect-Solution

备注:漏洞已在.net 4.0中得到了修复,3.5以前(包括3.5)都有些漏洞。

测试截图:

二、VirtualPathUtility.IsAppRelative

例如:
VirtualPathUtility.IsAppRelative("javascript:void(0)");会引发HttpException异常,而MSDN上只有参数为Null的异常(ArgumentNullException)的异常。

原因:这里的HttpException应该就地处理,不应该向外抛。

发现:http://www.cnblogs.com/qishichang/archive/2012/07/31/2617544.html

备注:漏洞已在.net 4.0中得到了修复,3.5以前(包括3.5)都有些漏洞。

这个上面的连接排版已经很不错了,就不裁图了。

转载于:https://www.cnblogs.com/weapon/archive/2013/01/19/2867233.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值