网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 安全编程 > 文章  
安全编程: 警惕输入
文章来源: IBM developerWorks 文章作者: David A. Wheeler 发布时间: 2006-07-10   字体: [ ]
 

什么是 IFS 问题?

  尽管现在已经不是一个严重的问题,但是 IFS 环境变量曾经在老的 Unix shell 中导致了很多安全问题。 IFS 用来确定命令中什么样的分隔词被发送到原始的 Unix Bourne shell,并与其他环境变量一样被传递下去。通常 IFS 变量应该有一个空格、一个制表符和一个新行的值 -- 这些字符都会被作为一个空格字符来处理。但是攻击者可以将 IFS 设置为不怀好意的值,例如,他们可能向 IFS 添加一个“/”。这样,当 shell 试图运行 /bin/ls 时,老的 shell 将把“/”解释为一个空格字符 -- 也就是说 shell 将运行“bin”程序(不管在哪儿找到一个),并使用“ls”选项!这样攻击者就可以提供一个程序可以找到的“bin”程序。 

 

  值得欣慰的是,当今大部分的 shell 都对此进行了防范,当它们启动时至少会自动重新设置 IFS 变量 -- 包括 GNU bash,GNU/Linux 常用的 shell。GNU bash 还限制了 IFS 的使用,使之只用于扩展的结果。这就意味着减少了 IFS 的使用,而且,这样危险度也大大降低了 (早期的 sh 使用 IFS 来分离所有的词,甚至命令)。不幸的是,不是所有的 shell 都可以保护自己( Practical Unix & Internet Security-- 参阅 参考资料 中的链接 -- 中有测试这一问题的样例代码)。尽管这一特定的问题已经(大部分)可以防范,但它仍以实例证明了没有经过检查的环境变量可以带来难以捉摸的问题。 

 

 
 
推荐文章
·洪水攻击原理及代码实现全攻略(
·原始套接字透析之综合实例:网络
·原始套接字透析之实现IP地址欺骗
·原始套接字透析之ARP欺骗
·原始套接字透析之实现包分析
·原始套接字透析之实现sniffer
·原始套接字透析之实现路由欺骗
·原始套接字透析之ICMP拒绝服务攻
·原始套接字透析之实现Ping
·原始套接字透析之Raw Socket基础
·黑客之旅 -- 原始套接字透析之前
·QQ尾巴病毒的Visual C++实现探讨
·安全编程: 安全地调用组件
·安全编程: 验证输入
 

 
共6页: 上一页 [1] [2] 3 [4] [5] [6] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·原始套接字透析之Raw So
·原始套接字透析之ARP欺
·洪水攻击原理及代码实现
·原始套接字透析之综合实
·原始套接字透析之实现Pi
·黑客之旅 -- 原始套接字
·使用 OpenSSL API 进行
·使用 OpenSSL API 进行
相关分类
相关文章
·安全编程: 验证输入
·安全编程: 最小化特权
·安全编程: 开发安全的程
·安全编程: 防止缓冲区溢
·非安全编程演示之高级缓
·安全编程: 安全地调用组
·使用 OpenSSL API 进行
·使用 OpenSSL API 进行
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $