网络安全从入门到精通(第十章-1)变量覆盖漏洞

本文内容:
			~什么是变量覆盖	
			~函数解析
			~补充
每日一句:
			今天开始,有了代码审计的影子。
			这是成为大佬的必经路,大家尽量都要学会
			CNVD证书和代码审计能力是安全方面找工作制高点

一、什么是变量覆盖

	1,定义
			指的是可以用我们的传参值替换程序原有的变量值
			例如:
				<?php
					$a = 1;
					$a = fg;		//在这就完成了覆盖,是不是很简单
					echo a;			//输出“fh”
				?>
				
	2,寻找变量覆盖
			可能会有的场景:		
				~$$使用不当									//常见
				~extract()函数使用不当						//常见
				~parse_str()函数使用不当						//常见
				~import_request_variables()函数使用不当
				~开启了全局变量注册等等

二、函数解析

	1,extract()
	
		作用:将数组的对应变为变量的对应
		例子:
				<?php
					$a = "1";
					$my_array = array("a" => "Cat","b" => "Dog");
					extract($my_array);				//启用函数
					echo "\$a = $a; \$b = $b;";		
				?>
					
				输出内容:$a = Cat; $b = Dog; 		//这的变量a被成功覆盖
		补充:php获得GET与POST传参,都会将其转化为数组形式
		
	2,parse_str()
	
	作用:将字符串变成变量
	例子:
				<?php
					parse_str("name=sb&&age=60");		//启用函数
					echo $name."<br>";
					echo $age;
				?>

				输出内容:sb和60 
	
	3,符号导致(如$$)
		不仅函数会造成变量覆盖,有些符号的特殊搭配也会造成变量覆盖
		例子:
				<?php
					$a='b';
					$b='c';
					echo $$a;		$$a => $b => c
				?>
			输出结果:c
			
			像这种情况并不是开发傻,只是开发为了实现某些功能,而这么写的
			比如,这个漏洞就在dede织梦的某个版本中存在。初衷也是为了实现
			将传参变为变量,只是没有进行合适检查过滤
	
	4,一个代码审计小工具
			Seay源代码审计系统,感觉还可以,就是规则稍微有点陈旧,可以自己增加
			
			建议:学会利用工具但不要依赖工具,没好处,对自己的成长不是太有利
				  找不到工具的,可以私信我
	
	5,php一些代码
			exit与die  这样的字眼,一般不能让他触发。让他执行,下边的语句就不执行了
			
			补充一下:php的$_REQUEST
					在低版本中,接收 get与post与cookie的传参
					在高于5.2中,就不接受cookie传参了

三、补充

	1,漏洞分类
			~事件型漏洞		:仅针对某站点
			~通用性漏洞		:一般针对某一套CMS,或者web容易,往往一打一大片
			
			~白盒审计	: 拥有源代码找漏洞 = 代码审计
			~黑盒测试	: 入侵 [黑盒测试他是有局限性的]
			
			补,白盒审计可以更好更彻底的找出漏洞
				一般挖掘SRC,想拿通用性,推荐CMS白盒审计
			
	2,CMS的通杀用处
			~可以获得CNVD原创漏洞证书
			~CMS可以说是关注资产,你可以直接换钱
			~CMS通杀可以帮你找到N个漏洞
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章