一、原理
解析漏洞主要是一些特殊文件被Apache、IIS、Nginx等Web容器在某种情况下解释成脚本文件格式并得以执行而产生的漏洞。
二、Apache
1. 多后缀解析
一个文件名为 test.x1.x2.x3 的文件,Apache会从x3的位置往x1的位置开始尝试解析,如果x3不属于 Apache解析的扩展名,那么Apache会尝试去解析x2, 这样一直往前尝试,直到遇到一个能解析的扩展名为止。
例如:Web应用限制了php等敏感后缀,我们通过可以上传一个文件名为 test.php.jpg 的文件,访问时,Apache会因为无法解析jpg,而向前寻找可以解析的后缀,这时便找到php,那么按照php文件进行正常解析,从而使木马被执行。
2. 其他后缀解析
SetHandler application/x-httpd-php
".+\.ph(p[345]?|t|tml)$" 该正则表达式匹配的不仅仅有php,还有php3、php4、php5、pht和phtml,这些都是Apache和php认可的php程序的文件后缀。如果网站仅对php进行了防护,那么我们可以改为这些不大常见的后缀,同样完成解析。
例如:test.php3 、 test.pt 、 test.ptml
3. .htaccess解析
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
启用.htaccess&#