freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PHP Utility Belt 远程代码执行漏洞的验证与分析
2016-04-13 16:56:53

PHP

PHP Utility Belt是一款为PHP程序开发人员使用的一套工具集,可以用来测试正则表达式并且观察与preg_match和preg_match_all函数的匹配,观察preg_replate函数的结果;获得包含两个单词两个数字一个大写字母和一个符号的随机密码;序列化与反序列化;测试mktime和strtotime时间戳的日期格式或者一个数字型时间戳;在主页外运行任意PHP代码。

由于它能够执行任意的PHP代码,因此只能在测试环境下使用,绝不能产品环境下运行。

此漏洞的漏洞编号为EDB-ID:39554

源代码下载地址为:https://github.com/mboynes/php-utility-belt

搭建实验环境,其中靶机的IP地址为192.168.248.129,攻击机的IP地址为192.168.248.128

下图为PHP Utility Belt搭建完之后的运行情况。

0搭建靶机环境.jpg

针对此漏洞metasploit已经给出了一个漏洞利用代码,路径为

exploit/multi/http/php_utility_belt_rce

在攻击机上运行此攻击脚本

1_msf_set_target.png

随后设置payload

2_msf_set_payloads.png

接下来设置相应的选项

3_msf_set_options.png

最后执行exploit命令,开始攻击

new_meterpreter.png

可见得到了meterpreter的shell,说明攻击是成功的。

对整个过程抓数据包,如下

wireshark.jpg

其中POST传递的参数为名为code,所有的攻击代码都在这个变量中,接下来看一下漏洞所在的文件ajax.php,问题出在第10行至第15行这部分代码段

code.jpg

可见程序先判断code参数是否设置,如果已经被设置的话,直接放到了eval函数中执行,eval函数的作用是把输入参数的内容作为php代码执行,而在上述代码中并没有对用户所传入的内容进行过滤,也就是说攻击者在code中给出的值只要符合php代码的语法规范就会被无条件执行,这是一个典型的eval注入。

上述代码如果在测试环境下,可以方便程序员的工作,但是放在产品环境下就很危险。

* navyofficer 投递,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文作者:, 转载请注明来自FreeBuf.COM

# 远程代码执行 # php
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑