首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP代码审计03之实例化任意对象漏洞

    如果PHP版本在5~5.3之间,就可以使用路径穿越来包含任意文件,比如类名为../../../../../etc/passwd的查找,那么将查看passwd的内容。...第二处漏洞是在上面代码的第10行,我们发现实例化的类名和传入的参数都是我们可以控制的,所以我们可以通过这个漏洞调用PHP代码库的任意构造构造函数。...这里需要注意一点:要结合PHP流的使用,因为当文件中存在: & ' " 等符号时会导致XML解析错误。我们用PHP流进行base_64编码输出就可以了。 什么是PHP流呢?...: php://stdin php://stdout php://stderr php://input php://output php://fd php://memory php://temp php...://filter 咱们用的最多的是php://input、php://output、php://filter。

    88110

    PHP任意文件上传漏洞(CVE-2015-2348)

    安全研究人员今天发布了一个中危漏洞——PHP任意文件上传漏洞(CVE-2015-2348)。 在上传文件的时候只判断文件名是合法的文件名就断定这个文件不是恶意文件,这确实会导致其他安全问题。...filename , string $destination ) 这里的问题是,可以在文件名中插入空字符(之前多次修复过这个漏洞,比如CVE-2006-7243),利用插入空字符的方式,攻击者可以上传任意文件...这段代码有好多个漏洞,比如XSCH, XSS等,但是没有RCE这种严重的漏洞,因为从PHP 5.3.1开始,空字符的问题已经被修复了。...']['tmp_name'],"/file.php\x00.jpg"); 这本应该创建一个名为file.php\x00.jpg的文件,但实际上创建的文件是file.php。...如果你机器的php版本在 5.4.39, 5.5.x - 5.5.23, 或者 5.6.x - 5.6.7,可以通过检查文件名中是否有\x00字符来解决本文中所述的问题。

    1.9K50

    PHP中操作任意精度大小的GMP扩展学习

    PHP中操作任意精度大小的GMP扩展学习 对于各类开发语言来说,整数都有一个最大的位数,如果超过位数就无法显示或者操作了。其实,这也是一种精度越界之后产生的精度丢失问题。...在我们的 PHP 代码中,最大的整数非常大,我们可以通过 PHP_INT_MAX 来查看。不过,当整数超过一定的位数之后,就会使用科学计数法来显示了,这个可不是我们想要的结果。...a, PHP_EOL; // 1.2312312312312E+26 echo $a + 1, PHP_EOL; // 1.2312312312312E+26 可以看到,显示的结果都是科学计数法的形式了...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202012/source/8.PHP中操作任意精度大小的GMP扩展学习.php...参考文档: https://www.php.net/manual/zh/book.gmp.php

    1.5K20

    看代码学PHP渗透(3) - 实例化任意对象漏洞

    最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。...攻击者可以使用 路径穿越 来包含任意文件,当然使用路径穿越符号的前提是 PHP5~5.3(包含5.3版本)版本 之间才可以。例如类名为: ../../../...../etc/passwd 的查找,将查看passwd文件内容,我们来看一下PHP手册对 class_exists() 函数的定义: class_exists :(PHP 4, PHP 5, PHP 7)...攻击者可以通过该漏洞,调用PHP代码库的任意构造函数。...,我们来看一下PHP手册对 SimpleXMLElement 类的定义: SimpleXMLElement :(PHP 5, PHP 7) 功能 :用来表示XML文档中的元素,为PHP的内置类。

    2.5K10
    领券