[ASP.NET]UrlScan造成某些Request ASPX Page時,會變成「找不到這個頁面」 http 404 的錯誤

Request ASPX With QuertString內容中有特別的字,就會回給Client 端 找不到這個頁面」 http 404 的錯誤
到底是什麼狀況呢?
要如何查出這種怪問題呢?

最近有個系統在客戶端出現 http 404 的錯誤,如下,

image

image

 

早上還執行的好好的,下午就出現那個錯誤!

如果不輸入QueryString就不會404。

 

感覺Client與Server之中似乎有什麼東西去攔。

然後再測試,如果QueryString之中有 ; 就會變成 404。

於是請客戶讓我到Server本機去試看看。

如果在Server本機執行,不會有這種狀況,那Client與Server之中應該真的有東西去攔。

結果,Server測試是一樣的狀況(還好!還好!! 不然就要問客戶的IT 到底誰有動過網路環境 …)。

 

把範圍集中到 Server 上,於是檢查看看最近是否有什麼 Windows Update ... (還好也沒有)….

 

另外建立一個網站,一支簡單的aspx,執行時 QueryString 給 ?a=; ,一樣會是 404。

那應該是IIS的問題了! 這樣有可能的就是 ISAPI 篩選器 的問題!

開啟 IIS -> 網站(按右鍵內容) -> ISAPI 篩選器 Tab,

果然發現 UrlScan ......,

image

 

先將它移除,並重啟 IIS 後。再執行網頁就正常了!

 

UrlScan的ini檔中,客戶資安人員有設定一些 SQL Injection 的字,而 ; 就在那裡面。

image

另外,也可以在它的Log檔中發現那些被擋掉的訊息,如下,

image

 

參考資料

如何設定 URLScan 工具

介紹好用工具:UrlScan Security Tool ( 入門級的 WAF 工具 )

IIS 安全性延伸模組 URLScan 3 基本設定 - 參數區段意義

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^