phpbugs代码审计基础详解
重要点为$shiyan==$content
只要满足这个条件就可以获取flag。
首先extract()
函数的作用为从数组将变量导入到当前符号表,也就是说我们如果构造
xxx.com/index.php?$shiyan=1
则会生成一个名字为$shiyan
的变量,值为1。
然后通过isset
函数来判断刚生成的$shiyan
变量是否为null,如果为null就进入判断。
$content
变量则是通过file_get_contents
函数和trim
函数来读取文件,但是此时它所读取的文件$flag
值为xxx,此时这个目录是不存在的,所以它的值为空。
所以我们此时要做的就是将$shiyan
的值变为空即可。
所以构造链接xxx.com/index.php?$shiyan=&flag=1
即可获得ctf{xxx}
php小编新一为您介绍phpbugs代 码审计基础详解。代码审计是指对程序代码的安全性进行评估与检测,以发现潜在的安全问题或漏洞。phpbugs是一套优秀的安全审计工具,具备强大的漏洞扫描和识别能力,可以快速发现代码中的漏洞,从而提高系统的安全性。本文将详细介绍phpbugs的使用方法和相关技巧,帮助读者更好地进行代码审计工作。
绕过过滤空白字符
$value) { $value = trim($value);//trim — 去除字符串首尾处的空白字符(或者其他字符) is_string($value) && $req[$key] = addslashes($value); // is_string — 检测变量是否是字符串,addslashes — 使用反斜线引用字符串 } } function is_palindrome_number($number) { $number = strval($number); //strval — 获取变量的字符串值 $i = 0; $j = strlen($number) - 1; //strlen — 获取字符串长度 while($i < $j) { if($number[$i] !== $number[$j]) { return false; } $i++; $j--; } return true; } if(is_numeric($_REQUEST['number'])) //is_numeric — 检测变量是否为数字或数字字符串 { $info="sorry, you cann't input a number!"; } elseif($req['number']!=strval(intval($req['number']))) //intval — 获取变量的整数值 { $info = "number must be equal to it's integer!! "; } else { $value1 = intval($req["number"]); $value2 = intval(strrev($req["number"])); if($value1!=$value2){ $info="no, this is not a palindrome number!"; } else { if(is_palindrome_number($req["number"])){ $info = "nice! {$value1} is a palindrome number!"; } else { $info=$flag; } } } echo $info;
根据代码判断,它需要满足多个条件才可以执行$info=$flag;
之后echo出来的才是flag。
if(is_numeric($_REQUEST['number'])) //is_numeric — 检测变量是否为数字或数字字符串 { $info="sorry, you cann't input a number!"; }
先来看看第一个条件,它要求number参数传入的内容不能为数字,否则返回sorry, you cann't input a number!
但是它的第二个要求为数字必须为整数,否则输出number must be equal to it's integer!!
elseif($req['number']!=strval(intval($req['number']))) //intval — 获取变量的整数值 { $info = "number must be equal to it's integer!! "; }
导致我们输入字符串也会报错
这里我们用到%00来绕过is_numeric
函数的判断。
根据报错,再来看看$value1
,它是$req["number"]
的整数值,$value2
则为反转之后的$req["number"]
的整数值。
$value1 = intval($req["number"]); $value2 = intval(strrev($req["number"])); if($value1!=$value2){ $info="no, this is not a palindrome number!"; }
所以第三步要满足的条件为,它必须为回文数即从左往右和从右往左读取都要相同的数值,所以我们构造如下
以上就是phpbugs代码审计基础详解的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!
<!--
-->
智能AI问答
每日运维网(www.mryunwei.com)智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
我要提问
相关标签:
php echo Integer NULL 字符串 number input
来源:编程网网
收藏
点赞
上一篇:Phar反序列化超详细介绍
下一篇:没有了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
深入理解C语言中*和&的不同功能2024-04-03 14:15:01
如何在Go语言中使用面量?2024-04-03 14:12:02
《蛋仔派对》流星雨时间2024-04-03 14:10:30
心渊梦境手游地图真名解放2024-04-03 14:10:19
《射雕》手游游侠任务怎么做2024-04-03 14:10:13
Go语言数据类型详解:基本数据类型概述2024-04-03 14:09:01
phpbugs代码审计基础详解2024-04-03 14:04:02
Phar反序列化超详细介绍2024-04-03 14:02:02
《射雕》画舫密室通关解密方法2024-04-03 13:58:22
龙之信条2巴达尔城怎么去2024-04-03 13:58:04
最新问题
Javascript - Mocha Chai单元测试无法运行
我正在与前端Web开发课程训练营合作开展一个项目,不幸的是,我们的教授无法回答我的这个问题。我有一个简单的战争纸牌游戏,需要两名玩家,然后玩26个回合,看看谁赢了。在这个游戏中我有...
P粉964682904来自于2024-04-02 14:52:19
0
1
180
内在小孩的过渡之火
这是最小的可重现示例。“切换”悬停的过渡结束正在触发(我不想要)并过早隐藏“a”。要在转换结束后重现单击切换。我意识到这种情况正在发生,因为切换位于a内部(我无法更改它)。有没有办...
P粉274161593来自于2024-04-02 14:38:29
0
1
110
mongodb 中的错误:“Route.post() 需要一个回调函数,但收到了一个”
这是我的主文件index.jstypehereconstexpress=require("express");constapp=express();requir...
P粉242535777来自于2024-04-02 14:46:18
0
2
132
当我在 localhost 中键入文件夹名称时如何首先显示登录系统的语法
不知道语法是什么?我想要发生的是,当我输入localhost/farm-e-mart时,第一个文件应该显示登录系统。我怎样才能做到这一点?
P粉351138462来自于2024-04-02 14:32:52
0
2
187
在同一页面上的多个位置显示库存计数器
这个脚本作为股票倒计时效果很好,但我无法在同一页面上超过1个位置显示它。例如,同一页面上有4或5个产品/计划,每个产品显示的库存数量不同,并且数量变化的时间也不同。仅在1个产品上显...
P粉038161873来自于2024-04-02 14:25:38
0
2
253
以2位小数显示SQL中的计算结果
我编写了一个简单的查询来查找两列的百分比,但我希望结果在只有两位小数的列中。这是我写的,但我遇到了错误,而且我似乎无法修复它。SELECTSmall_Bags,Total_Bags...
P粉055726146来自于2024-04-02 14:23:34
0
1
200
如何根据父元素高度自动调整子元素的上边距?
我在一次老的大学考试中遇到了问题。基本上它要求:获取这个json文件[{"colore":"#FF0080","pos_orizz...
P粉086993788来自于2024-04-02 13:49:19
0
1
140
下载作为 api 调用响应的 ZIP 文件
我有一个二进制zip文件作为api调用的响应。我想使用Javacript/React直接下载该zip文件。我怎样才能实现这个目标?
P粉034571623来自于2024-04-02 13:56:27
0
1
176
不合作布尔逻辑
我的网站遇到了一个问题,至少几周来我一直在努力解决这个问题,所以我希望有人能够指出我哪里出了问题。对于一些背景知识,我是一名应届毕业生,这是我为最终项目构建的顶点项目,在演示之前我...
P粉343141633来自于2024-04-02 13:34:26
0
1
124
LESS string-set 的现代等价物是什么
有关字符串集及其用途的示例,请参阅使用LESS字符串集属性和内容方法经过多次困惑,我发现这已经过时了,并且自Chrome版本39以来就没有实现过,尽管它显然在LESS中继续存在。教...
P粉993712159来自于2024-04-02 13:29:36
0
1
200
相关专题
更多>
-
php文件怎么打开 -
php怎么取出数组的前几个元素 -
php反序列化失败怎么办 -
php怎么连接mssql数据库 -
php连接mssql数据库的方法 -
html怎么上传 -
PHP出现乱码怎么解决 -
php怎么在浏览器运行