这些常见的PHP漏洞,如果你不知道,就别说自己是个攻城狮

炒豆儿
• 阅读 159

这些常见的PHP漏洞,如果你不知道,就别说自己是个攻城狮

一、md5加密漏洞

比较哈希字符串的时候,php程序把每一个以“0x”开头的哈希值都解释为科学计数法0的多少次方,恒为0

所以如果两个不同的密码经过哈希以后,其哈希值都是以“0e”开头的,那么php将会认为他们相同。

另外md5加密是有几率两个字符串不同,但是加密后的值是相同的情况,这种情况称为哈希碰撞

<?php
$str1 = 's878926199a';
$str2 = 's214587387a';
 
echo json_encode([
 'md5_str1' => md5($str1),
 'md5_str2' => md5($str2),
 'bool' => md5($str1) == md5($str2)
]);

结果如下,两个值加密后竟然相等

缺点你懂的,如果一个网站的某个用户密码加密后刚好是0e开头的,这个时候黑客过来破解,很容易就攻入了

{
 md5_str1: "0e545993274517709034328855841020",
 md5_str2: "0e848240448830537924465865611904",
 bool: true
}

二、is_numeric漏洞

会忽视0x这种十六进制的数

容易引发sql注入操作,暴漏敏感信息

echo json_encode([
 is_numeric(233333),
 is_numeric('233333'),
 is_numeric(0x233333),
 is_numeric('0x233333'),
 is_numeric('233333abc'),
]);

结果如下

16进制数0x61646D696EASII码对应的值是admin

如果我们执行了后面这条命令的话:SELECT * FROM tp_user where username=0x61646D696E,结果不言而喻

[
 true,
 true,
 true,
 false,
 false
]

三、in_array漏洞

in_array中是先将类型转为整形,再进行判断

PHP作为弱类型语言,类型转换的时候,会有很大漏洞

转换的时候,如果将字符串转换为整形,从字符串非整形的地方截止转换,如果无法转换,将会返回0

<?php
var_dump(in_array("2%20and%20%", [0,2,3]));

结果如下

bool(true)

四、switch漏洞

switch中是先将类型转为整形,再进行判断

PHP作为弱类型语言,类型转换的时候,会有很大漏洞

转换的时候,如果将字符串转换为整形,从字符串非整形的地方截止转换,如果无法转换,将会返回0

<?php
$i ="abc";
switch ($i) {
 case 0:
 case 1:
 case 2:
 echo "i是比3小的数";
 break;
 case 3:
 echo "i等于3";
}

结果如下

i是比3小的数

五、intval强转漏洞

PHP作为弱类型语言,类型转换的时候,会有很大漏洞

转换的时候,如果将字符串转换为整形,从字符串非整形的地方截止转换,如果无法转换,将会返回0

<?php
var_dump(intval('2')); //2
var_dump(intval('3abcd')); //3
var_dump(intval('abcd')); //0

这些常见的PHP漏洞,如果你不知道,就别说自己是个攻城狮

点赞
收藏
评论区
推荐文章
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Aimerl0 Aimerl0
4年前
DeDeCMS v5.7 SP2 正式版 前台任意用户密码修改
写在前面学了这么久了回过头来一看,这居然是我自己复现的第一个漏洞,哪怕是之前打hvv的时候都是百度到了就用,没有进行深入的研究,刚好这回网络渗透测试课安排了复现漏洞的任务,所以水一篇博客记录一下,以后有时间了也得搭环境复现一下其他的洞漏洞简介在用户密码重置功能处,php代码存在弱类型比较,如果用户没有设置密保问题,可以直接绕过验证密保问题,直接
Wesley13 Wesley13
3年前
thinkphp 3.x下的任意文件包含(有条件)分析
漏洞原理实现自己的模版引擎不当,在模版渲染的情况下存在任意变量覆盖漏洞。。漏洞详情漏洞位置1ThinkPHP/Library/Think/View.class.php需要修改配置文件指定TMPL\_ENGINE\_TYPE为phpif('php'strtolower(C('TMPL_ENGINE
Wesley13 Wesley13
3年前
thinkphp+redis实现秒杀,缓存等功能
秒杀是商城常见功能phpredis是最常见的秒杀功能1,安装redis,根据自己的php版本安装对应的redis扩展首先查看phpinfo();php环境信息2,下载redishttps://windows.php.net/downloads/pecl/snaps/redis/https://windows.php.ne
Wesley13 Wesley13
3年前
NGINX 文件类型解释漏洞整理
nginx文件类型错误解析漏洞www.xxx.com/1.jpg内容为PHP代码,如<?phpphpinfo();?后面加任意.phpwww.xxx.com/1.jpg/xxx.php导致代码被执行php.inicgi.fix\_pathinfo1PHP\_INI\_ALL
Wesley13 Wesley13
3年前
Java和PHP在Web开发方面的比较
比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:一、语言比较  PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的
Wesley13 Wesley13
3年前
PHP利用公钥私钥进行高强度加密
目前我知道的加密方式,公钥私钥方式加密强度最大,注意升级openssl组件,修复心脏出血漏洞http://php.net/manual/en/function.opensslpublicencrypt.php(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fphp.net%2Fma
Stella981 Stella981
3年前
Redis未授权访问漏洞复现学习
0x00前言前段时间看到想复现学习一下,然后就忘了越临近考试越不想复习!在这里插入图片描述(https://oscimg.oschina.net/oscnet/ec73a943a3d9e18184946ee4c4ca290e14f.jpg)常见的未授权访问漏洞Redis未授权访问漏洞MongoDB未授权访问漏
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
PHP自动测试框架Top 10
对于很多PHP开发新手来说,测试自己编写的代码是一个非常棘手的问题。如果出现问题,他们将不知道下一步该怎么做。花费很长的时间调试PHP代码是一个非常不明智的选择,最好的方法就是在编写应用程序代码之前就写好测试代码。自动化测试可以极大的缓解并改善PHP开发的工作流程,它能帮助开发人员管理大部分任务,使其更专注于开发逻辑的测试代码。本文将为大家介绍PHP自动测试
Wesley13 Wesley13
3年前
PHP代码审计笔记
0x01最简单的文件上传未进行文件类型和格式做合法性校验,任意文件上传漏洞代码示例:新建一个提供上传文件的 upload.html<html创建上传脚本  upload\_file.php<?php漏洞利用:可上传任意文件!(https://oscimg.oschina.net/oscnet/a
炒豆儿
炒豆儿
Lv1
能够慢慢培养的不是感情而是习惯
文章
5
粉丝
0
获赞
0