Path Traversal漏洞分析与修复方法

漏洞描述
目录遍历指的是应用程序对文件路径没有检查导致服务器上的敏感文件/代码泄漏。

漏洞危害
可能会导致源代码等敏感信息泄露。

修复建议
严格检查文件路径参数,限制在指定的范围。严格限制文件路径参数,不允许用户控制文件路径相关的参数,限定文件路径范围。

修复实例参考
ASP漏洞代码示例:

  1. <%   
  2. Dim FileName   
  3. FileName = Request.QueryString("FileName")   
  4. Response.Clear   
  5. Response.ContentType = "application/octet-stream"  
  6. Response.AddHeader "content-disposition""attachment; filename=" & FileName   
  7. Set Stream = server.CreateObject("ADODB.Stream")   
  8. Stream.Type = 1   
  9. Stream.Open   
  10. Stream.LoadFromFile Server.MapPath(FileName)   
  11. While Not Stream.EOS   
  12. Response.BinaryWrite Stream.Read(1024 * 64)   
  13. Wend   
  14. Stream.Close   
  15. Set Stream = Nothing  
  16. Response.Flush   
  17. Response.End  
  18. %>  

ASP修复范例:

  1. <%   
  2. Dim FileName   
  3. FileId = Request.QueryString("FileId")   
  4. FileName = GetFileNameByID(FileId)   
  5. Response.Clear   
  6. Response.ContentType = "application/octet-stream"  
  7. Response.AddHeader "content-disposition""attachment; filename=" & FileName   
  8. Set Stream = server.CreateObject("ADODB.Stream")   
  9. Stream.Type = 1   
  10. Stream.Open   
  11. Stream.LoadFromFile Server.MapPath(FileName)   
  12. While Not Stream.EOS   
  13. Response.BinaryWrite Stream.Read(1024 * 64)   
  14. Wend   
  15. Stream.Close   
  16. Set Stream = Nothing  
  17. Response.Flush   
  18. Response.End  
  19. %>  

PHP修复规范:
在php.ini中进行如下配置:
open_basedir = 服务器上WEB目录的路径(注,路径最后需要加上斜杠作为结束),如:open_basedir = /var/www/html/

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓