我正在做一个内嵌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