本文内容:
~什么是变量覆盖
~函数解析
~补充
每日一句:
今天开始,有了代码审计的影子。
这是成为大佬的必经路,大家尽量都要学会
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个漏洞