变量覆盖漏洞
1.SQL注入2.XSS漏洞3.文件上传漏洞4.CSRF漏洞5.SSRF漏洞6.文件包含漏洞7.代码执行命令8.命令执行漏洞
9.变量覆盖漏洞
10.代码审计笔记11.业务逻辑漏洞12.SRC-漏洞应急响应平台13.信息收集14.反序列化漏洞15.中间件安全16.等级保护基本要求17.应急响应简介18.框架漏洞-RCE19.dc-2靶机20.GOBY联合AWVS21.GOBY联合XRAY22.春秋云镜CVE-2022-29464 (WSO2文件上传漏洞)23.春秋云镜CVE-2022-28525(ED01-CMS v20180505 存在任意文件上传漏洞)24.春秋云镜CVE-2022-28512原理
变量覆盖指的是可以用我们的传参值替换程序原有的变量值
常出现位置
经常导致变量覆盖漏洞场景有:$$使用不当,extract()函数使用不当,parse_str()函数使用不当,开启了全局变量注册等。
函数解析
经常引发变量覆盖漏洞的函数有:extract() parse_str()
extract()函数(作用:将数组中将变量导入到当前的符号表)
列题:
$test =******;
extract($_GET);
if(isset($gift)){ $content = trim($test);
if($gift == $content){echo 'flag is:'.$flag;} else{ echo error}}
分析源码我们可以知道,
1、文件将get方法传输进来的值通过extrace()函数处理。
2、通过两个if语句分别判断是否存在gift变量,和变量gift的值和变量content的值是否相等。变量content的值是通过读取变量test的值获取到的。如果两个变量相等输出flag。如果不相等,输出错误。
似乎逻辑上没啥问题,但是如果我们传参了test呢?
第一开始test在php中已经定义了,但是因为extrace()函数,我传参test时相当于重新给test赋值对不对?因为php执行语句是自上而下,那我传的参数完全可以覆盖掉之前所定义的
那么当我传参gift=a&test=a,相当于$gift=a;$test=a 那么这里是不是就直接输出flag了呢 (因为$content是由$test决定,$gift和$test都是我可以决定的)
__EOF__

本文作者:Crushz
本文链接:https://www.cnblogs.com/Crushz-2024/p/18390458.html
关于博主:Crushz
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
本文链接:https://www.cnblogs.com/Crushz-2024/p/18390458.html
关于博主:Crushz
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)