微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache HTTPD 换行解析漏洞

漏洞介绍:

Apache HTTPD是一款HTTP服务器,它可以通过mod_PHP来运行PHP网页。

影响版本:Apache 2.4.0~2.4.29 存在一个解析漏洞;在解析PHP时,1.PHP\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

漏洞产生分析:

我们查看相关配置:读取配置文件,前三行的意思是把以 .PHP 结尾的文件当成 PHP 文件执行。问题就在它使用的是 $ 符号匹配的,我们都知道这个符号在正则表达式中的意思是匹配字符串的末尾,是会匹配换行符的,那么漏洞就这样产生了。

 进入容器里,打开index.PHP,发现如果文件后缀名为 PHPPHP3、PHP4、PHP5、PHPtml、pht都会返回为:bad file ;也就是说,过滤掉了那些后缀名,通过上图发现;我们可以通过换行符拉进行绕过。

docker   exec -it c6bc05f11c7d /bin/bash

 漏洞复现:

1、我们正常上传文件1.PHP;发现出现bad  file;那就是说将我们的PHP文件给过滤掉了

2、打开我们的bp工具;上传文件抓包并在文件名后面增加一个 0a 也就是换行符;

访问成功,不再是bad file;我们修改后不会被过滤;

 打开我们的浏览器,加入1.PHP%0a路径

 漏洞复现成功!

这个漏洞还需要其他条件:
1、如果获取文件名的是 $_FILES['file']['name'] ,而不是 $_POST['name'],这个漏洞就不会产生,因为前者会自动去掉换行。
2、服务器要是 linux,因为 windows 不支持带有换行符后缀的文件

总结:对于程序而言,后缀名为 PHP%0a ;而不是PHP了,就不会拦截了;但对于mod_PHP而言,就会舍弃该换行符,因此会被过滤;该漏洞危害性不是很大,通过升级版本便可修复。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐