我正在做一個內嵌TCL解釋器的系統的安全測試。系統接收來自因特網(HTTP)的輸入,解析並傳遞給可定製的TCL腳本。在一個起毛測試(發送在HTTP頭中的二進制垃圾)我注意到在日誌中以下錯誤:做這些TCL錯誤指示不安全的代碼?
TCL error: list element in quotes followed by "{}x" instead of space while executing "foreach header [ XXXXX ] { }"
或
TCL error: unmatched open quote in list while executing "foreach header [ XXXXX ] {}"
這裏XXXXX是返回的HTTP標頭的陣列的命令,如由系統解析。對於混淆真實命令感到抱歉,我希望你明白,在供應商被告知有關問題(如果事實證明是一個問題)之前,我不想公佈太多的細節。
TCL代碼產生的錯誤是非常簡單的:
foreach header [ XXXXX ] { }
據我所知,HTTP分析是TCL之外完成和解析值通過自定義命令(可能是由於TCL擴展實現對TCL做訪問)。
所以我的問題是:
是安全問題和系統,如不足的用戶輸入驗證這些錯誤搬弄是非的跡象?
如果是,是否可以通過發送系統特製的請求來利用此條件執行任意TCL語句,code injection attack?
有沒有「安全的TCL編碼實踐」文件?我找不到任何東西。
讓我們看看他是否可以在另一個地方問同樣的問題。 – 2011-04-23 20:47:14