收藏此站 联系我们 宿迁腾云网络公司
全部 网站建设 SEO优化 技术日志
当前位置:网站首页 > 技术日志

php git的一些查找代码漏洞方法

作者: 腾云网络 . 阅读量: . 发表时间:2020-01-05


前言

    2020年好,各位 PHPer 们,很久没有写原创文章了,心里实在过意不去,决定写点文字,"从心"出发,以求共鸣。


背景
    今天打开 php.net ,忽地发现 PHP 7.4.1 正式版本都已经发布了,感慨万千。想当年,自己从 PHP 5.1 版本作为学习起点,一直到 PHP 7.2 版本,已经学了十多年了。不得不说,这些年 PHP 的变化确实很多也很大,期间还炒了很长一段时间 PHP 6,但 6 在西方属于不吉利数字,所以跳过了。众所周知,PHP 是一门动态类型的语言,因此其编程时的灵活度和自由度会比强类型语言更高,然而正是这种特性使得它存在着与生俱来无法完整覆盖测试的漏洞场景。


操作步骤

    第1步、打开 PHP 7.4.1 变更记录(https://www.php.net/ChangeLog-7.php#7.4.1)网址,如下图:

原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更(图1)

我们发现了好几个 CVE (CVE 的英文全称是“Common Vulnerabilities & Exposures”),即公共漏洞和暴露,而这种漏洞通常就是上一个版本存在的安全漏洞。


第2步、打开 bug.php.net 打开某个 bug 

的详情(https://bugs.php.net/bug.php?0" cellspacing="0" >

In PHP versions 7.2.x below 7.2.26, 7.3.x below 7.3.13 and 7.4.0, PHP bcmath extension functions on some systems, including Windows, can be tricked into reading beyond the allocated space by supplying it with string containing characters that are identified as numeric by the OS but aren't ASCII numbers. This can read to disclosure of the content of some memory locations.
References


英文我就不翻译了,如果感兴趣,请自行想办法。


第3步、使用 php-src 官方源码,我在 gitee 上同步了一份来自 github 的源码,仓库地址:https://gitee.com/gopro/php-src.git,直接克隆一份到本地,git clone https://gitee.com/gopro/php-src.git。


第4步、使用 PHPStorm 打开 php-src 源码,如下图所示:

原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更(图2)

接着,切换分支到 PHP-7.4.1 ,在 php-src 目录右键

原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更(图3)

选择 Remote Branches -> origin/php-7.4.1 -> checkout。


第5步、比较 PHP-7.4.1 分支与 PHP-7.4.0 分支的目录改动区别。如下图操作:

原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更(图4)

结果如下:

原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更(图5)

第6步、我们鼠标双击图中的 str2num.c 文件,根据PHP 7.4.1 的 changelog 我们可以直接推断,这个变动应该就是修复了 CVE-2019-11046这个漏洞的,我们再来看看对应的文件变更比较:

原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更(图6)

这里已经比较明显了,如果有同学能够看懂 PHP 源码,可以继续深究一下了,本文纯属抛砖引玉。



标签:
转载请注明来源:https://www.tyweb.net/jsrz/255.html
现在咨询免费送诊断方案,每天限3名
马上填写资料获取方案
腾云网络产品
网站建设 微信小程序 微商城 APP开发 SEO优化
腾云网络服务
7x24小时售后支持 市内上门服务 免费后台培训 定期回访
关于腾云网络
关于我们
网站建设案例 小程序案例 APP开发案例
联系腾云网络
联系腾云网络
紧急问题处理电话
131-6035-5545 131-6035-5545
131-6035-5545
扫一扫关注腾云网络公众号