我們對使用MS SQL數據庫的簡單asp應用程序執行筆測試。對於使用動態構建查詢的身份驗證來說,似乎只是轉義單個qoutes。 當我們使用Unicode引號如%uFFO7,%u02b9等時,我們能夠成功注入SQL注入。 想要了解它是更多的一種配置問題的IIS服務器無法Unicode編碼的字符或驗證函數來逃避單引號的方式寫的問題的原因是什麼?IIS 6.0服務器和Unicode字符
回答
你有沒有ASP代碼的例子?據我瞭解,編碼是由IIS完成的,但這是爲了運輸而且不會被看到,所以它們的轉義函數可能有缺陷。如果他們構建動態SQL字符串而不是使用存儲過程(在任何情況下都不關心引號,但會將其作爲文字字符接受),則這一點尤其正確。
在前面的問題中,一個更正的數據庫不是MS SQL,而是Oracle。 期間從帕羅採取的帖子內容開發是 __DIRTY = 1&__ SENTITY = __ ISPOPUP = 1&__ ISWIZARDSTEP = 0&__ ISRETURN = 0&__ VIEWSTATE =登錄=真AccessibleMode =假FromLogin = 1&提交按鈕=提交+查詢和用戶名=用戶%uFF07 + - 和密碼=密碼 的查詢我使用NetMon捕獲數據庫服務器 從用戶處選擇Usr_Id,Usr_Status其中User_Name ='user' - '和Usr_Password ='password' 因此字符%uFF07被解釋爲引用。 – Srikanth 2010-05-28 04:55:52
好的,所以不是SQL Server,而是Oracle。用「存儲過程」代替「包」,你就在同一個地方:從你的ASP代碼構建動態SQL字符串有點危險,只是因爲你指出的漏洞。 你可以發佈處理查詢字符串輸入的代碼部分嗎? – 2010-06-07 15:42:25
- 1. IIS 6.0網站服務器輸出?或服務器控制檯?新的IIS 6.0
- 2. FileUpload服務器控件和Unicode字符
- 3. xxx.eot Web字體文件不會IIS 6.0服務器
- 4. IIS服務器和Apache服務器
- 5. IIS 6.0和Webservices
- 6. 錯誤在IIS託管WCF服務6.0
- 7. IIS服務器和Azure AD
- 8. 監視器IIS 6.0
- 9. 以編程方式設置IIS 6.0的服務器綁定
- 10. IIS 6.0中的CDate函數錯誤,Windows服務器2003
- 11. 如何強制在IIS 6.0服務器上下載文件
- 12. IIS 6.0服務器太忙HTTP 503 Connection_Dropped DefaultAppPool
- 13. IIS 6.0可以像tomcat一樣顯示服務器狀態
- 14. 將WCF服務從IIS 6.0移至IIS 7.5
- 15. 從IIS共享IIS 6.0上的文件服務
- 16. IIS SMTP服務器
- 17. IIS Smtp服務器
- 18. Default.aspx與IIS 6.0和.Net 4?
- 19. 啓動IIS服務器,如果IIS服務器沒有運行
- 20. 從IIS 7服務器到IIS 6服務器的FTP ASP.NET MVC
- 21. 在紅帽服務器上顯示unicode字符
- 22. Visual Studio ASP.NET開發服務器和IIS服務器
- 23. mysql和Unicode字符
- 24. OleDbCommand和Unicode字符
- 25. jQuery和Unicode字符
- 26. 並行運行Tomcat和IIS服務器
- 27. 連接IIS和SQL服務器
- 28. Geneos監控工具和IIS服務器
- 29. 匿名訪問(IIS)和SQL服務器
- 30. WordPress和Windows IIS服務器問題
你需要添加一個攻擊的例子,目前還不清楚你在做什麼。 '%uXXXX'不是一個有效的URL編碼的Unicode字符,它是JavaScript'escape()'函數生成的自定義格式,絕不應該使用它。 – bobince 2010-05-27 11:57:49