PHP相关系列 - 某开源php软件的一个安全漏洞所想
2012-10-23 14:35
573 查看
早上看到某开源php软件爆出这么一个漏洞:
http://www.xxxx.net//index.php?m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=../../phpsso_server/caches/configs/database.php
以上网址为phpcms的应用程序
然后基本你的数据库密码就沦陷了。
看public_get_suggest_keyword
这个函数:
/phpcms/modules/search/index.php中
搜索了一圈,只有在一个JS中用到这个代码:
警示:
1. 传递进来的参数一定要进行安全过滤
2. 如果进行url,路径操作,一定要进行路径过滤
3. 对外少用@file_get_contents 怎么死都不知道
4. 上面那种情况一定要做域名白名单
http://www.xxxx.net//index.php?m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=../../phpsso_server/caches/configs/database.php
以上网址为phpcms的应用程序
然后基本你的数据库密码就沦陷了。
看public_get_suggest_keyword
这个函数:
/phpcms/modules/search/index.php中
public function public_get_suggest_keyword() { $url = $_GET['url'].'&q='.$_GET['q']; $res = @file_get_contents($url); if(CHARSET != 'gbk') { $res = iconv('gbk', CHARSET, $res); } echo $res; }
$url = $_GET['url'].'&q='.$_GET['q'];url没有任何白名单,没有任何过滤就杀进代码中
$res = @file_get_contents($url);又一个这个函数,如果弄一个大文件,那么直接可以把服务器搞垮
搜索了一圈,只有在一个JS中用到这个代码:
$(document).ready(function() { $("#q").suggest("?m=search&c=index&a=public_get_suggest_keyword&url="+encodeURIComponent('http://www.google.cn/complete/search?hl=zh-CN&q='+$("#q").val()), { onSelect: function() { alert(this.value); } }); });
警示:
1. 传递进来的参数一定要进行安全过滤
2. 如果进行url,路径操作,一定要进行路径过滤
3. 对外少用@file_get_contents 怎么死都不知道
4. 上面那种情况一定要做域名白名单
相关文章推荐
- 用Qt写软件系列五:一个安全防护软件的制作(1)
- 用Qt写软件系列五:一个安全防护软件的制作(1)
- 用Qt写软件系列五:一个安全防护软件的制作(2)
- Nginx + PHP CGI的一个可能的安全漏洞(转)
- eAccelerator 是一个为 PHP 程序加速的免费开源软件,
- PHP 之 Laravel 框架安装及相关开源软件
- PHP 之 Laravel 框架安装及相关开源软件
- Nginx + PHP CGI的一个可能的安全漏洞
- 微软系列软件中最新的安全漏洞大揭秘
- 用Qt写软件系列五:一个安全防护软件的制作(2)
- Nginx + PHP CGI的一个可能的安全漏洞
- 用Qt写软件系列五:一个安全防护软件的制作(3)
- 用Qt写软件系列五:一个安全防护软件的制作(3)
- 一个PHP正则相关的“经典漏洞” preg_replace
- PHP相关系列 - PHP in_array函数的一个危险用法
- Nginx + PHP + mysql CGI的一个可能的安全漏洞
- PHP相关系列 - PHP in_array函数的一个危险用法
- PHP相关系列 - PHP缓存使用的一个陷阱
- 开源软件Xen曝出安全漏洞,这是linux作死的节奏?
- 综合利用一个身份认证漏洞,通吃多款趋势安全软件