簡體   English   中英

ResolveUrl XSS 替代方案

[英]ResolveUrl XSS alternative

發布的研究顯示 .aspx 路由易受反射 XSS 攻擊后,推薦使用Page.ResolveUrlControl.ResolveUrl的替代方法是什么? 鏈接的文章沒有建議任何緩解措施。

相關研究摘要:

  • 對於.aspx 頁面(非 MVC) ,即使您沒有啟用 cookieless 會話,ASP.NET 仍會解析那些“特殊”URL 格式,例如http://www.example.com/(S(lit3py55t21z5v55vlm25s55))/orderform.aspx
  • 每當您使用ResolveUrl時,它都會將它們包含在頁面 output 中。
  • 因此它創建了一個攻擊向量,其中像ResolveUrl( "~/Images/logo.png" )這樣的調用會將攻擊者選擇的內容注入您的頁面 output,例如
/(S("onerror="alert`1`"))/Images/logo.png`

我在下面發布了一個可能的答案,但我正在尋找更好的想法。

請注意, ResolveClientUrl不是直接替換,因為它生成相對 Url,例如../Images/logo.png不像ResolveUrl生成根 Url,例如/myapp/Images/logo.png

一種方法是使用HttpRuntime.AppDomainAppVirtualPath而不是特殊的波浪號語法。 所以上面的例子......

代替:

ResolveUrl( "~/Images/logo.png" )

我們會有:

HttpRuntime.AppDomainAppVirtualPath.TrimEnd( '/' ) + "/Images/logo.png"

稍微不那么簡潔,但似乎在不調用古老的“無cookie”路由解析的情況下完成了同樣的事情。

使用ResolveClientUrl而不是ResolveUrl ResolveClientUrl不允許 XSS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM