PHP代码审计

PHP代码审计

PHP一个数字和一个字符串进行比较或者进行运算时,PHP会把字符串转换成数字再进行比较。PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。 在PHP中,== 会先进行类型转换,再进行对比,而=会先比较类型,如果类型不同直接返回不相等。所以=更全面,不光比较值,还会比较类型。
当数字太长不识别时,可以用科学计数法,例如2亿为2e10

PHP代码审计
来源网址: https://www.feiniaomy.com/post/388.html
作者: DS

PHP代码审计
mb_strpos():返回要查找的字符串在别一个字符串中首次出现的位置
语法:
mb_strpos (haystack ,needle )
参数:
haystack:要被检查的字符串。
needle:要搜索的字符串。
mb_substr()

<?php echo mb_substr("菜鸟教程", 0, 2); // 输出:菜鸟 ?>

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。

PHP scandir()命令定义和用法
scandir() 函数返回指定目录中的文件和目录的数组。
语法
scandir(directory,sorting_order,context);
参数
描述
directory
必需。规定要扫描的目录。
sortig_order
可选。规定排列顺序。默认是 0,表示按字母升序排列。
如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。
如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。
context
可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

chr (47)为/ php过滤了/时可以考虑
“var_dump”是PHP中的调试函数,用于判断一个变量的类型与长度,并输出变量的数值。用var_dump打印所有的对象,可以查看对象内部的数据结构;var_dump里面的变量必须是存在的。
file_get_contents() 把整个文件读入一个字符串中。
该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。file_get_contents(path)

file_get_contents(path,include_path,context,start,max_length)
参数
描述
path
必需。规定要读取的文件。
include_path
可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。
context
可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。
start
可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。
max_length
可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。
strcmp函数功能 数组绕过
用于比较字符串的函数
int strcmp ( string $str1 , string $str2 )
如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。testcode

<?php $password = $_GET['password']; if (strcmp('thisispassword',$password)){ echo "No!"; } else{ echo "Success!"; } ?>

strcmp()在比较字符串和数组的时候直接返回0,这样通过把目标变量设置成数组就可以绕过该函数的限制。
构造 strcmp.php?password[]=1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值