| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> PHP函数漏洞学习 -> 正文阅读 |
|
[PHP知识库]PHP函数漏洞学习 |
PHP函数漏洞学习0x00 前言记一下php函数的一些缺陷,比如弱类型与强类型的比较,一些函数引发的安全问题,以及如何绕过等等,很有深意。 0x01 ==与===的区别
也就是说==仅比较两个变量的值,===不仅比较值,还会比较类型。 ==弱对比 ===强类型对比 0x02 MD5、SHA1函数缺陷(Hash比较缺陷)绕过
md5加密后0e开头的字符串
sha1加密的
还有MD5和双MD5以后的值都是0e开头的字符串
加解密都是0e开头的字符串
0x03 intval缺陷绕过intval — 获取变量的整数值 value:要转换成 integer 的数量值 base:转化所使用的进制
通过使用指定的进制 intval函数有个特性:”直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(\0)结束转换”,在某些应用程序里由于对intval函数这个特性认识不够,错误的使用导致绕过一些安全判断导致安全漏洞.此外有些题目还利用intval函数四舍五入的特性来绕过判断!
0x04 strpos()函数绕过strpos — 查找字符串首次出现的位置 haystack:在该字符串中进行查找。 返回值 返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。如果没找到 needle,将返回 false。
0x05 in_array函数缺陷in_array — 检查数组中是否存在某个值 in_array 函数默认采用 宽松 比较,即不比较类型,只比较值是否相等。 needle: 待搜索的值。(如果 haystack:带搜索的数组。 strict:如果第三个参数
也就是说在 $haystack 中搜索 $needle ,如果第三个参数 $strict 的值为 TRUE ,则 in_array() 函数会进行强检查,检查 $needle 的类型是否和 $haystack 中的相同。如果找到 $haystack ,则返回 TRUE,否则返回 FALSE。 也就是说,in_array()函数检测上传文件时候,如果未将第三个参数设置为true,从而导致攻击者构造文件名绕过服务端的检测。 0x06 preg_match()函数缺陷当被匹配的数据为数组的时候回返回false值。 0x07 Preg_replace()函数缺陷Preg_replcae在存在/e模式的时候会产生代码执行漏洞 0x08 str_replace()函数缺陷0x09 isset()函数缺陷isset()函数只检查变量是否存在,不检查值。 0x10 strcmp函数缺陷strcmp函数无法比较数组,可以使用数组绕过。 0x11 file_get_contents() 函数缺陷file_get_contents() 函数把整个文件读入一个字符串中,如果文件不存在,则函数返回flase(0)。 0x12 is_numeric()函数缺陷is_numeric() 函数用于检测变量是否为数字或数字字符串。 Is_numeric函数在对末尾含有%20的整数进行判断时会返回false。 0x13 ereg()函数缺陷Ereg函数用来对字符串中指定的字符进行匹配,返回True或False值。 当字符串中存在%00的时候,ereg将不会匹配%00后面的字符串,进行截断,从而进行绕过。 0x14 Call_user_func()函数缺陷函数将第一个参数作为调用的函数,其余参数为函数的传入参数,当两个值为可控内容时会产生命令执行漏洞。 0x15 assert()函数(php<7)将字符串以php代码来执行。 最后收藏一个代码审计的练习的git项目:红日安全代码审计 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 11:55:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |