24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > PHP开发

【常州PHP安全开发培训班】PHP安全开发中常见的Dos风险

2018-05-08 19:06:41 东方博宜 阅读

会引起 Dos 的几种案例

CVE-2015-4024 


早起危害较大的 Dos 漏洞,挺有代表性的。其原理是 php 解析 body part 的 header 时进行字符串拼接,而拼接过程重复拷贝字符导致DOS。对应官方bug:


https://bugs.php.net/bug.php?id=69364


XML Dos


也叫 XML Bomb ,其原理是通过无限制的递归,或传递的实体内容过大造成内存占满,从而实现 Dos。


Json Dos


它主要利用了 PHP Hash Collision ,早在 2013 年被发现并收到重视。但是在开发中,滥用相关函数便会造成此类 Dos 的出现。


在较老的版本中通过提交 POST 参数,也能实现 PHP Hash Collision。


攻击实例

CVE-2015-4024


该漏洞是比较老的一个的,已被修复很久网上也有很多文章及介绍,当然官方 bugs 里写个人认为是描述最全的,给 Shusheng Liu 大佬点赞。


具体产生原因则需要追 PHP 的引擎代码了,在这我就不赘述了应用说明概括


由于 php 没有妥善处理 multipart/form-data 请求的 body part 请求头,对于换行内容多次重新申请内存,导致耗尽CPU资源,拒绝服务计算机。-- PHITHON


复现过程:


首先通过 docker 运行一个未升级版的 php-fpm 容器


nginx 应用为物理机,php-fpm 则启动容器方便切换不同版本。



PHP文件(post_exp.php)简单构造一个 from 表单, 接收 POST 过来的参数并输出:



现在我们来看看,正常提交参数的响应时间是多少:



仅 0.03/s, 通过 BurpSuite 改成恶意请求后提交查看本次服务器响应时长。




服务器响应时间为:11.16/s, 说明本次复现成功。


XML Dos 


该风险常发生在对外提供接口,并接收恶意 XML (对接过 Dot Net的同学都知道WSDL吧)实体,从而让应用进行无限制的递归,导致耗尽CPU资源。


PHP文件(xml_exp.php)用于接收POST过来的XML实体,处理后输出:



前面已知一个正常的请求相应时长一般在 0.03/s 之内,超出时间则表示攻击成功。现在发送一个可递归的 POST 请求并发送。



本次攻击并没有生效,怀疑是 SimpleXML 扩展已被修复并限制了递归深度,超出则终止应用。


将要提交的 xml 内容修改为只保留一行,并引用 &a :

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

 2.新北区太湖东路9-4号常州创意园E12


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn