1.php代码审计学习之函数缺陷
php代码审计学习之函数缺陷
原文链接:
在文件上传代码中,源码若文件名位于1-区间内,源码利用PHP的源码弱类型比较特性,文件可成功上传。源码例如,源码数字6被转换为6,源码X网源码因该值位于指定范围内,源码从而实现上传。源码
在piwigo2.7.1中,源码当case为"rate"时,源码将"rate"与"image_id"传入functions_rate.inc.php文件的源码"rate_picture"函数。查找"rate"是源码抄底神器源码否存在于配置数组$conf['rate_items']中。只要"rate"值在(0,源码1,2,3,4,5)范围内,即可以绕过验证,源码但in_array函数第三参数未设置为true,源码导致安全漏洞。
CTF中,"stop_hack"用于过滤危险函数。通过获取GET参数ID,使用"stop_hack"进行过滤并拼接到SQL查询语句中。filter_var函数存在默认仅过滤双引号,不过滤单引号的缺陷,除非设置"quotestyle"选项为ENT_QUOTES,底部放量源码才能实现对单引号的过滤。
在anchor-cms源码分析中,关键代码未进行XSS过滤,存在安全风险。
在CTF实例中,利用"__autoload"函数实现任意对象实例化。通过获取get参数并使用"stop_hack"过滤后,拼接到SQL查询语句中,实现任意对象的实例化。
在Shopware 5.3.3的XXE代码分析中,获取"sort"参数并传入"RepositoryInterface"类的微oa源码"unserialize"方法。通过"LogawareReflectionHelper"类的"unserialize"方法,新建反射类并传入参数,其中类名与参数均由可控的"sort"变量决定。
在CTF中,利用"__autoload"方法的错误使用,实现任意对象实例化。当"__autoload"方法不存在时,使用类似方法实现对象实例化,通过参数传递文件名和信息作为键名。
strpos函数使用不当引发漏洞。在查找特殊符号时,花炮网站源码当未找到指定字符时返回"false",若第一个字符找到则返回"0",利用此特性可以进行注入。
DeDecms V5.7SP2中,用户密码重置漏洞允许任意密码修改。通过传入mid查询用户信息,当安全问题和答案不为空且匹配时执行sn函数,若未设置问题答案则安全问题为0,安全答案为null,使密码修改流程失效。
在api.php的buy函数中,使用"=="比较操作符进行弱类型比较,传入7个true值实现绕过。
在escapeshellarg与escapeshellcmd的不当使用中,通过构造字符串绕过转义规则,实现命令注入。
在postcard中,通过filter_var()函数的缺陷,利用双引号嵌套转义空格和单引号双引号重叠,实现数据绕过检测,进行注入。
在CmsEasy 5.5漏洞分析中,通过全局搜索和catid参数,寻找到可控制的配置项,利用eval函数执行恶意代码。
RabbitMetinfo 6.0.0中,未恰当的exit导致程序逻辑异常,导致重装漏洞。
在unserialize反序列化漏洞中,使用不当的unserialize方法,绕过数据类型检查,实现代码执行。
在Typecho-1.1漏洞分析中,通过base解码和反序列化操作实现代码执行,关键步骤涉及session变量的判断和使用。
深入研究preg_replace与代码执行,利用e模式修正符进行代码执行,通过构造特定参数绕过限制。
DM企业建站系统中,存在ENT_NOQUOTES设置导致的注入漏洞。
Turkey Baster实例中,利用addslashes过滤机制的绕过,通过构造特定类名实例化实现目标。
在苹果CMS视频分享程序8.0漏洞分析中,直接拼接SQL语句,导致SQL注入,通过过滤和url解码操作实现注入。
从变量覆盖到getshell的SnowmanDuomiCMS_3.0漏洞分析,通过全局变量覆盖实现shell注入。
PHP反序列化漏洞学习中,讨论ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES设置,以及ereg、us--Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages等关键概念与实践。