我正在处理一个封面问题。在我的代码中,
props =
StandardUtils.getProperties(="/Dir/tomcat/properties/lib/standardlib_" +
cust_id + ".properties, inst_Id);
This vulnerability is found by my coverity server and showing the message
"CID 127299 (#1 of 1): Filesystem path, filename, or URI manipulation
(PATH_MANIPULATION) 4. sink:使用污染值构造路径或URI /风向/ Tomcat的/属性/ LIB / standardlib _" + cust_id +" .properties,inst_Id。这可能允许攻击者访问, 修改或测试关键或敏感文件的存在"
然后我再次将这个String分配给一个String变量,我的封面扫描了 显示相同的错误消息" "
String loc="/Dir/tomcat/properties/lib/standardlib_" +
cust_id + ".properties";
props = StandardUtils.getProperties(loc, inst_id);
但问题仍然存在。
覆盖率表明"路径操纵漏洞可以解决 适当的输入验证。将允许不安全路径的字符列入黑名单 遍历可以提高输入的安全性,但推荐的方法 是将预期字符集列入白名单。这应该排除绝对 路径和向上目录遍历。"
我的代码中会报告这些类型的问题。
我们如何解决这类问题?任何人都可以帮助我吗?
答案 0 :(得分:0)
你应该阅读path traversal,但基本上,你的代码仍然容易受到攻击,而它可能不是路径遍历攻击,特别是这可能会受到indirect object reference攻击。< / p>
如果cat "${ALL_ITEMS}" | xargs -n 1 -P ${THREADS} -I {} bash -c 'process_item "$@"' _ {}
看起来像这样:
SELECT COLUMN_NAME AS [Output]
,ORDINAL_POSITION
,prop.value AS [COLUMN_DESCRIPTION]
FROM INFORMATION_SCHEMA.TABLES AS tbl
INNER JOIN INFORMATION_SCHEMA.COLUMNS AS col ON col.TABLE_NAME = tbl.TABLE_NAME
INNER JOIN sys.columns AS sc ON sc.object_id = object_id(tbl.table_schema + '.' + tbl.table_name)
AND sc.NAME = col.COLUMN_NAME
LEFT JOIN sys.extended_properties prop ON prop.major_id = sc.object_id
AND prop.minor_id = sc.column_id
AND prop.NAME = 'MS_Description'
WHERE tbl.TABLE_NAME = @TableName
我提供了一个网址
cust_id
然后这个:
String cust_id = request.getParameter("cust_id");
也会扩大:
http://your_server.com:8080/?cust_id=123
因此,假设不同客户有不同的日志文件,则可以为其他人查看该文件。
要解决此问题,您需要验证String loc = "/Dir/tomcat/properties/lib/standardlib_" +
cust_id + ".properties";
,或以某种方式检查其访问权限。
一旦解决了问题,您就可以安全地将其标记为误报。