Request ASPX With QuertString內容中有特別的字,就會回給Client 端 找不到這個頁面」 http 404 的錯誤
到底是什麼狀況呢?
要如何查出這種怪問題呢?
最近有個系統在客戶端出現 http 404 的錯誤,如下,
早上還執行的好好的,下午就出現那個錯誤!
如果不輸入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 ......,
先將它移除,並重啟 IIS 後。再執行網頁就正常了!
UrlScan的ini檔中,客戶資安人員有設定一些 SQL Injection 的字,而 ; 就在那裡面。
另外,也可以在它的Log檔中發現那些被擋掉的訊息,如下,
參考資料
介紹好用工具:UrlScan Security Tool ( 入門級的 WAF 工具 )
IIS 安全性延伸模組 URLScan 3 基本設定 - 參數區段意義
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^