设为首页
收藏本站
切换到宽版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
VIP用户组
官网群
无名商城论坛
»
论坛
›
资源分享区
›
学习资源专区
›
【LSP】PHP代码审计02之filter_var()函数缺陷 ...
返回列表
发帖
查看:
252
|
回复:
0
[其他技术]
【LSP】PHP代码审计02之filter_var()函数缺陷
[复制链接]
无名
无名
当前离线
积分
32464
1万
主题
1万
帖子
3万
积分
管理员
积分
32464
发消息
发表于 2022-5-8 17:02:40
|
显示全部楼层
|
阅读模式
前言
根据红日安全写的文章,学习PHP代码审计审计的第二节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完这个题目,会有一道CTF题目来进行巩固,外加一个实例来深入分析,想了解上一篇的内容,可以点击这里:PHP代码审计01之in_array()函数缺陷
下面我们开始分析。
2|0漏洞分析
下面来看第一题,代码如下:
这一关用的是PHP的一个模板引擎Twig,考察的是XSS漏洞,也就是跨站脚本攻击。虽然程序使用了escape和filter_var()两个过滤方法,但是。还是可以被绕过的。下面我们看第一处过滤,在上面代码的第10行,使用Twig模板引擎定义的escape过滤器来过滤link。而escape过滤器默认情况下,它使用HTML转义策略,也就是escape将PHP本机htmlspecialchars函数用于HTML转义策略,现在我们看一下PHP手册,htmlspecialchars函数是如何定义的。
其实就是把一些预定义字符转换成HTML实体。具体看下表:
下面我们来看第二处过滤,是在上面代码第20行,是用filter_var()来进行过滤,下面我们来看看PHP手册对这个函数的定义:
具体参数设置如下表:
上面代码是用了FILTER_VALIDATE_URL,把值作为 URL 来验证。这个函数过滤其他的参数设置说明,如下:
FILTER_CALLBACK:调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING:去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED:”string” 过滤器的别名。
FILTER_SANITIZE_ENCODED:URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS:HTML 转义字符 ‘”<>& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL:删除所有字符,除了字母、数字以及 !#$%&’*+-/=?^_{|}~@.[]
FILTER_SANITIZE_URL:删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\^~[]<>#%”;/???&=
FILTER_SANITIZE_NUMBER_INT:删除所有字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT:删除所有字符,除了数字、+- 以及 .,eE。
FILTER_SANITIZE_MAGIC_QUOTES:应用 addslashes()。
FILTER_UNSAFE_RAW:不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT:在指定的范围以整数验证值。
FILTER_VALIDATE_BOOLEAN:如果是 “1”, “true”, “on” 以及 “yes”,则返回 true,如果是 “0”, “false”, “off”, “no” 以及 “”,则返回 false。否则返回 NULL。
FILTER_VALIDATE_FLOAT:以浮点数验证值。
FILTER_VALIDATE_REGEXP:根据 regexp,兼容 Perl 的正则表达式来验证值。
FILTER_VALIDATE_URL:把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL:把值作为 e-mail 来验证。
FILTER_VALIDATE_IP:把值作为 IP 地址来验证。
通过对两个过滤器的了解,我们想想该如何绕过呢?,其实,这里可以通过JavaScript伪协议来绕过,为了更好的理解,这里写一小段简单的代码。
filter
,
字符
,
SANITIZE
,
过滤
,
VALIDATE
相关帖子
•
【HC】?Java String 源码的排序算法
•
【HC】SQL基本语法
•
【iapp教程】iapp简单的判断文本中是否有中文字符代码
•
【iapp教程】iApp汉字与UTF8的相互转换
•
关于正则速成
•
【枭梦游】枭梦游c++输出128个ascll字符
•
【DMT】iapp获取字符长度教程
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表