在测试绕过 WAF 执行远程代码之前,首先构造一个简单的、易受攻击的远程代码执行脚本,内容如图:
【资料图】
第 6 行是一个比较明显的命令执行代码,第 3 行尝试拦截 system、exec 或 passthru 等函数(PHP 中有许多其他函数可以执行系统命令,这三个是最常见的)。
这个脚本部署在 Cloudflare WAF 和 ModSecurity + OWASP CRS3 之后。对于第一个测试,尝试读取 passwd 的内容;
/cfwaf.php?code=system("cat /etc/passwd");
可以看到,被 CloudFlare 拦截了,我们可以尝试使用未初始化变量的方式绕过,比如:
cat /etc$u/passwd
Cloudflare WAF 已被绕过,但是由于脚本检查敏感函数,所以被脚本拦截,那么如何绕过脚本的函数检测呢?我们看看关于字符串的 PHP 文档:
https://secure.php.net/manual/en/language.types.string.php
PHP 字符串转义序列:
[0–7]{1,3} 八进制表示法的字符序列,它会自动溢出以适应一个字节(例如“\400”===“\000”)
\x[0–9A-Fa-f]{1,2} 十六进制字符序列(例如“\x41”)
\u{[0–9A-Fa-f]+} Unicode 代码点序列,将作为该代码点的 UTF-8 表示输出到字符串(在 PHP 7.0.0 中添加)
不是每个人都知道 PHP 表示字符串的语法,而“PHP 变量函数”则成为我们绕过过滤器和规则的瑞士军刀。
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
① 网安学习成长路径思维导图 ② 60+网安经典常用工具包 ③ 100+SRC漏洞分析报告 ④ 150+网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南+题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集(含答案) ⑧ APP客户端安全检测指南(安卓+IOS)
PHP变量函数
PHP 支持变量函数的概念。这意味着如果变量名后面附加了圆括号,PHP 将寻找与变量求值结果同名的函数,并尝试执行它。除其他事项外,这可用于实现回调、函数表等。
这意味着语法如 $var(args); 和 "sting"(args; 等于 func(args); 。如果我可以通过使用变量或字符串来调用函数,则意味着我可以使用转义序列而不是函数名。这里有一个例子:
第三种语法是十六进制符号的转义字符序列,PHP 将其转换为字符串“system”,然后使用参数“ls”转换为函数系统。让我们尝试使用易受攻击的脚本:
此技术不适用于所有 PHP 函数,变量函数不适用于 echo、print、unset()、isset()、empty()、include、require 。利用包装函数将这些构造中的任何一个用作变量函数。
改进用户输入检测
如果我从易受攻击脚本的用户输入中排除双引号和单引号等字符,会发生什么情况?即使不使用双引号也可以绕过它吗?让我们试试:
正如您在第三行看到的,现在脚本阻止在 $_GET[code] 查询字符串参数中使用“和”。我以前的有效负载现在应该被阻止:
幸运的是,在 PHP 中,我们并不总是需要引号来表示字符串。PHP 使您能够声明元素的类型,例如 $a = (string)foo; 在这种情况下,$a 包含字符串“foo”。此外,圆括号内没有特定类型声明的任何内容都被视为字符串:
在这种情况下,我们有两种方法可以绕过新过滤器:第一种是使用类似 (system)(ls) 的方法;但是我们不能在代码参数中使用“system”,所以我们可以像 (sy.(st).em)(ls); 一样连接字符串。第二种是使用 $GET 变量。如果我发送像 ?a=system&b=ls&code=$GETa 这样的请求;结果是:$GET[a] 将替换为字符串“system”,$GET[b] 将替换为字符串“ls”,我将能够绕过所有过滤器!
让我们尝试使用第一个有效负载 (sy.(st).em)(whoami);
和第二个有效载荷 ?
?a=system&b=cat+/etc&c=/passwd&code=$\_GET[a]($\_GET[b].$\_GET[c]);
在这种情况下,没有用,但您甚至可以在函数名称和参数内部插入注释(这可能有助于绕过阻止特定 PHP 函数名称的 WAF 规则集)。以下所有语法均有效:
get_defined_functions 函数
此 PHP 函数返回一个多维数组,其中包含所有已定义函数的列表,包括内置(内部)函数和用户定义函数。内部函数可以通过 $arr[“internal”] 访问,用户定义的函数可以使用 $arr[“user”] 访问。例如:
这可能是另一种无需使用其名称即可访问系统功能的方法。如果我对“系统”进行 grep,我可以发现它的索引号并将其用作我的代码执行的字符串:
显然,这应该对我们的 Cloudflare WAF 和脚本过滤器有效:
字符数组
PHP 中的每个字符串都可以用作字符数组(几乎像 Python 那样),您可以使用语法 $string[2] 或 $string[-3] 引用单个字符串字符。这可能是另一种规避阻止 PHP 函数名称的规则的方法。例如,使用这个字符串 $a=”elmsty/ “; 我可以编写语法系统(“ls /tmp”);
如果幸运的话,您可以在脚本文件名中找到所需的所有字符。使用相同的技术,您可以使用类似的方法选择所需的所有字符
OWASP CRS3
有了 OWASP CRS3,一切都变得更难了。首先,使用之前看到的技术,我只能绕过第一个偏执级别,这太神奇了!因为 Paranoia Level 1 只是我们可以在 CRS3 中找到的规则的一小部分,所以这个级别旨在防止任何误报。对于 2 级偏执狂,由于规则 942430“受限 SQL 字符异常检测(args):超出特殊字符数”,所有事情都变得困难。我能做的只是执行一个不带参数的命令,如“ls”、“whoami”等。但我无法像使用 Cloudflare WAF 那样执行类似 system(“cat /etc/passwd”) 的命令:
更多网安技能的在线实操练习,请点击这里>>
标签:
-
利用 PHP 特性绕 WAF 测试 今日看点
在测试绕过WAF执行远程代码之前,首先构造一个简单的、易受攻击的远程
-
今年雪糕价格如何?3至5元仍是主流
相关负责人告诉记者,目前他们一共有100多个品种的冰激凌,其中有30%都
-
一小区突发爆炸,2死4伤!
6月14日8时许,内蒙古赤峰一小区突发爆炸致2死4伤。6月14日下午14时,
-
热点在线丨青春奋斗演讲稿800字_青春奋斗句子
少壮不努力,老大徒伤悲。我喜欢站在一片山崖上看着匍匐在自己脚下的一
-
当前快报:上海中心气象台发布大风蓝色预警【Ⅳ级/一般】【2023-06-14】
上海中心气象台2023年06月14日13时15分发布大风蓝色预警[Ⅳ级 一般]:
-
全球即时看!贵州镇远赛龙舟文化活动精彩纷呈
龙舟竞渡,舞水欢歌。2023民体杯全国龙舟、独竹漂比赛暨2023中国历史文
-
观察:泰兴今年投入2.62亿元改造老旧小区23个
6月13日上午,在国庆新村六区改造项目现场,施工人员正在对已开挖的路
-
武夷山针对“中、高考生”推出暑期系列文旅产品
13日,武夷山市召开“中、高考生”暑期文旅产品通气会,针对2023年“中
-
中医考研究生有哪些专业好就业报个未来吃香_今日快看
1、中医考研究生有哪些专业好就业《中医基础理论》、《中医诊断学》、
-
当前速讯:国台办:海峡论坛顺民意、得民心 民进党当局阻挠打压不了
有记者提问:第十五届海峡论坛即将在福建举办,台陆委会称禁止台湾民间
-
陆溪镇扎实推进农村危房改造工作-环球聚焦
为切实做好农村低收入群体等“六类重点对象”住房安全保障工作,有效改
-
连通京津地区第4条铁路干线又有新进展!
连通京津地区第4条铁路干线又有新进展!
-
中央气象台发布暴雨蓝色预警
人民网北京6月14日电(记者杨虞波罗)中央气象台预计,6月14日08时至15
-
泰国榴莲“坐”火车来成渝地区!网友:能带它上高铁吗?|世界看热讯
6月11日,一列装有约500吨新鲜泰国榴莲的中老泰冷链班列顺利抵达重庆江
-
别克E4官图发布 中大型轿跑SUV配前后双电机|天天新动态
别克E4官图发布中大型轿跑SUV配前后双电机,别克,新车,轿跑,suv,轿跑版
-
上海航运交易所:本周出口集装箱运输市场跌幅放缓 部分航线运价反弹
上海航运交易所发布中国出口集装箱运输市场周度报告。本周,中国出口集
-
环球视点!贴墙砖前墙面拉毛用什么材料(墙面拉毛用什么材料)
相信大家对贴墙砖前墙面拉毛用什么材料,墙面拉毛用什么材料的问题都很
-
普高还是职教?你会如何选择?来听听他们的故事——_全球今头条
普高还是职教?你会如何选择?来听听他们的故事——2023全市中考即将来
-
眼球上长了个小疙瘩_眼球上长了个疙瘩怎么治疗_最新资讯
1、病情分析:眼球上的疙瘩,考虑是结膜炎、角膜炎或红眼病引起的,治
-
寻找家电市场新增量,京东家电这十年做对了什么?
竞争加剧、消费低迷,这组梦幻般的数据多少有些不真实感,还出自于早已
-
联想打印机加墨粉步骤图(联想打印机加墨粉步骤) 焦点热文
大家好,小乐来为大家解答以上的问题。联想打印机加墨粉步骤图,联想打
-
广东移动5G覆盖省内首个近海深水区海上风电平台
中新网广州6月13日电(郭军黎颖欣)记者13日从广东移动了解到,近期,广
-
近三个交易日股价涨幅超三成 源杰科技提示高速光芯片目前处于研发阶段
近期,人工智能概念股备受二级市场资金关注,其中源杰科技(688498)近三
-
126邮箱登陆不上_126邮箱无法登陆 全球关注
1、1》邮箱无法登录的牵扯到的因素有很多,与我们的服务器,您的网络状
-
河南前5个月进出口实绩外贸企业9155家 同比增加超一成
河南前5个月进出口实绩外贸企业9155家同比增加超一成---中新网郑州6月1
-
恒大推出1.6万套现房优惠 涉及全国260个城市|天天快播报
恒大推出1 6万套现房优惠涉及全国260个城市,商票,现房优惠,恒大集团,资
-
新编大学法语_1_关于新编大学法语_1简介 百事通
1、《新编大学法语(1)》是2019年外语教学与研究出版社出版的图书,作者
-
蔚来降价背后:毛利率和交付量跌至谷底,李斌站在悬崖边上
6月12日,蔚来官方宣布,全系新车售价下调3万元。消息一出,立即引发热
-
利空!5月社融披露不及预期,A股,周三走势分析_每日热议
无论投入了多少流动性,目前与我们没有关系,没有在市场完全流通,所以
-
吹糖人、茭白叶编织、采茶、坑烧……孩子们的活动很精彩~
你知道吗?在虹口有着一个“国家指南针计划”青少年基地(以下简称“基