IIS目录解析漏洞的解决办法
很多企业站点还是使用asp程序,那边 也就是跑在经典的win2003+iis6的WEB环境下。
几年前IIS出过一个目录解析漏洞 就是 URL目录里 存在.asp字符。那么该目录下的文件会作为 asp文件来执行。如果在上传检查时不够严格,那么会出现严重的安全隐患。
这次发现的 IIS解析漏洞 出现了新的 形式 如下
1_asp;.jpg 只需要存在这样的文件名,机会被当做 ASP程序执行,由于不需要创建指定名称的目录,危害性还是很大的。
防范方法有以下三方面:
1.程序对于上传的文件进行文件类型检查。
2.对于upload目录设置IIS站点 无脚本执行权限。
3。 批量设置,使用IIS 的REWRITE功能。对于IDC服务商 比较有效,比较 不能挨个帮客户检测程序。
以下为整理的 URL规则,高中 排列组合 学的太烂,大小写切换 名称 都看晕了。
php访问提示:HTTP 401.5 – 未经授权:ISAPI/CGI 应用程序授权失败的解决方法
WordPress URL Rewrite
zen cart iis下isapi_rewrite规则和IIRF2.1规则
IIRF Drupal, WordPress and IIS6 rewrite完美规则
wordpress在iis下完美的rewrite规则isapi_rewrite和iirf的都支持
IIS下 wordpress也可以有完美的rewrite
包含三种常用永久链接规则:
iis下 isapi_rewrite的规则
iis下不支持$_SERVER[‘REQUEST_URI’]的解决办法
// Fix for IIS, which doesn't set REQUEST_URI
if ( empty( $_SERVER['REQUEST_URI'] ) ) {
// IIS Mod-Rewrite
if (isset($_SERVER[‘HTTP_X_ORIGINAL_URL’])) {
$_SERVER[‘REQUEST_URI’] = $_SERVER[‘HTTP_X_ORIGINAL_URL’];
}
// IIS Isapi_Rewrite
else if (isset($_SERVER[‘HTTP_X_REWRITE_URL’])) {
$_SERVER[‘REQUEST_URI’] = $_SERVER[‘HTTP_X_REWRITE_URL’];
}
else
{
// Use ORIG_PATH_INFO if there is no PATH_INFO
if ( !isset($_SERVER[‘PATH_INFO’]) && isset($_SERVER[‘ORIG_PATH_INFO’]) )
$_SERVER[‘PATH_INFO’] = $_SERVER[‘ORIG_PATH_INFO’];
// Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
if ( isset($_SERVER[‘PATH_INFO’]) ) {
if ( $_SERVER[‘PATH_INFO’] == $_SERVER[‘SCRIPT_NAME’] )
$_SERVER[‘REQUEST_URI’] = $_SERVER[‘PATH_INFO’];
else
$_SERVER[‘REQUEST_URI’] = $_SERVER[‘SCRIPT_NAME’] . $_SERVER[‘PATH_INFO’];
}
// Append the query string if it exists and isn’t null
if (isset($_SERVER[‘QUERY_STRING’]) && !empty($_SERVER[‘QUERY_STRING’])) {
$_SERVER[‘REQUEST_URI’] .= ‘?’ . $_SERVER[‘QUERY_STRING’];
}
}
}
或者这里 看里面的程序是这样写的
可以参考这里来设置
* Instructions: http://neosmart.net/blog/2006/100-apache-compliant-request_uri-for-iis-and-windows/
* Support: http://neosmart.net/forums/forumdisplay.php?f=17
* Product URI: http://neosmart.net/dl.php?id=7
上了2台服务器,累了2天
两台同时安装web服务,两台机器默认都没装iis,只好从网上下载,
第一台先开始装,下载了个6M的iis,以后遇到6M的IIS一定不要下载,11M那个才是完整的。
装这个6M的,中间就提示找不到文件了。中途又下载了个11M的,这样装完了,打开iis就500错误,肯定是权限问题,但是哪里的权限就对来对去不能确定了,给了所有的IIS_WPG、IUSR_用户等一堆权限,自己建立个站点算是正常,
然后装plesk,这家伙也正常装完了,也可以正常配置,就是新建站点还是http500错误,打开进程池就挂起来了。
把iis卸载了重装也不行,就是某个地方的用户权限少了一点。找了一晚上也没找出来真正原因.
Ionic’s Isapi Rewrite Filter (IIRF2.1)
现在我用的是IIRF 2.0(Ionics Isapi Rewrite Filter),2.1只出到测试版。
搞了一晚上,一加载网站就不工作了。先搜集点资料,过几天单独弄个机器测试,感觉跟plesk有关系,影响筛选的加载,用isapi_rewrite也一样,单独添加dll文件的方式行不通,只能用安装文件。