CTF中常见的 PHP 弱类型漏洞总结

您所在的位置:网站首页 sha1绕过 CTF中常见的 PHP 弱类型漏洞总结

CTF中常见的 PHP 弱类型漏洞总结

2023-09-07 09:09| 来源: 网络整理| 查看: 265

作者:ZERO    所属团队:Arctic Shell

参考资料:

http://archimesan.me/2017/12/21/php%E5%BC%B1%E7%B1%BB%E5%9E%8B%E6%BC%8F%E6%B4%9E/

https://www.cnblogs.com/Mrsm1th/p/6745532.html

https://blog.spoock.com/2016/06/25/weakly-typed-security/

 

0x1::弱类型与强类型

通常语言有强类型和弱类型两种,强类型指的是强制数据类型的语言,就是说,一个变量一旦被定义了某个类型,如果不经过强制类型转换,这个变量就一直是这个类型,在变量使用之前必须声明变量的类型和名称,且不经强制转换不允许两种不同类型的变量互相操作。我们称之为强类型,而弱类型可以随意转换变量的类型例如可以这样:

 

 

$text=1; $text=”string”

 

 

也就是说php并不会验证变量的类型,可以随时的转换类型,估计开发者的意图是让程序员可以进行更高效的开发,所以在大量内置函数以及基本结构中使用了很多松散的比较和转换,防止程序中的变量因为程序员的不规范而报错,虽然提升了效率,但是引发了很多安全问题。

类型转换问题

 类型转换最常见的就是int转String,String转int。

Int转String:

$num = 5; 方式1:$item = (string)$num; 方式2:$item = strval($num);

 

String转int:

intval() 函数。(取整函数)

主要问题就出现在这个intval()函数上了。

 

例子:

 

 

var_dump(intval(4))//4 var_dump(intval(‘1asd’))//1 var_dump(intval(‘asd1’))//0

 

 

 

 

上面三个例子说明了intval()函数在转换字符串的时候即使碰到不能转换的字符串的时候它也不会报错,而是返回0。

 

例子(来自于大佬的博客http://archimesan.me/2017/12/21/php%E5%BC%B1%E7%B1%BB%E5%9E%8B%E6%BC%8F%E6%B4%9E/)



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3