IIS禁止执行脚本的命令有哪些,怎么设置?

在IIS安全配置中,禁止执行脚本命令的核心是通过请求过滤、处理程序映射和URL授权规则,限制对cmd.exe、powershell.exe、wscript.exe、cscript.exe等危险命令文件的访问,从源头阻断攻击者利用Web漏洞执行系统命令的路径。

IIS禁止执行脚本命令的三种核心方法

配置IIS禁止执行脚本命令不是单一开关,而是通过多层机制协同工作,下面三种方法覆盖了绝大多数场景,根据你的网站类型和风险等级选择组合即可。

用IIS管理器配置web服务器
加载中
用IIS管理器配置web服务器

请求过滤禁止特定扩展名

请求过滤是IIS中最直接的拦截手段,它会在HTTP请求进入处理管道前检查文件扩展名,匹配到拒绝列表的请求直接返回404错误。

  • 操作步骤:打开IIS管理器,选择目标站点,双击中间区域的“请求过滤”图标,点击右侧“拒绝扩展名”添加需要禁止的扩展名。
  • 建议添加的扩展名:.exe、.com、.bat、.cmd、.ps1、.vbs、.js、.msi、.scr、.pif等。
  • 注意事项:请求过滤仅对URL中的扩展名生效,如果攻击者通过无扩展名的方式调用命令(如利用Windows短文件名或路径解析漏洞),则无法拦截,因此需要配合其他方法。

处理程序映射移除脚本执行入口

处理程序映射决定了IIS如何响应不同类型的请求,移除无关的脚本处理程序,可以防止攻击者通过上传脚本文件获取执行权限。

  • 操作步骤:在站点管理界面双击“处理程序映射”,找到并移除以下不用的处理程序:ASP、ASP.NET、PHP、CGI-exe、Server-side Includes等,如果站点不需要执行任何脚本,保留StaticFile即可。
  • 关键点:移除CGI-exe处理程序能直接阻止IIS调用任何.exe文件,但需确认站点是否依赖CGI功能,对于纯静态站点,这是最安全的做法。

通过web.config配置URL授权和文件拦截

对于无法通过界面修改的托管环境,或需要更精细化控制时,web.config文件是最佳选择,利用<system.webServer>下的<security>和<location>节点,可以禁止特定路径或文件名的访问。

  • 配置示例:在站点根目录web.config的<system.webServer>节点内添加:
<security>
  <requestFiltering>
    <denyUrlSequences>
      <add sequence="cmd.exe" />
      <add sequence="powershell.exe" />
      <add sequence="wscript.exe" />
    </denyUrlSequences>
    <fileExtensions>
      <add fileExtension=".exe" allowed="false" />
      <add fileExtension=".ps1" allowed="false" />
    </fileExtensions>
  </requestFiltering>
</security>

IIS禁止执行脚本的命令有哪些,怎么设置?

  • 优势:可以精确拦截URL中的特定字符串,即使命令文件没有扩展名也能阻止,同时支持对目录级别的权限控制,比如禁止访问/bin/或/uploads/下的可执行文件。

哪些命令禁止执行?常见危险命令列表

IIS禁止执行脚本命令的核心是识别出能直接调用系统操作的可执行文件。 根据攻击者常用的命令包,整理出以下清单,按风险等级划分,方便你按需配置。

高危命令:必须禁止执行

命令 说明 风险场景
cmd.exe Windows命令提示符,攻击者最常利用的入口 执行任意系统命令、下载恶意负载
powershell.exe 强大的脚本执行环境,支持直接内存调用 无文件攻击、执行恶意脚本、提权
wscript.exe / cscript.exe Windows脚本宿主,可执行.vbs、.js 运行恶意脚本、下载执行病毒
mshta.exe 运行HTA文件,常被用于绕过杀毒软件 执行恶意HTML应用、下载木马
regsvr32.exe 注册COM组件,攻击者利用它绕过白名单 通过SCT文件远程加载恶意代码
rundll32.exe 运行DLL文件,误报率低,常被滥用 执行DLL文件中的恶意函数

中危命令:建议根据场景禁止

命令 说明 风险场景
certutil.exe 证书工具,可下载文件,被用于下载恶意软件 绕过下载限制,获取远程payload
bitsadmin.exe 后台智能传输服务,可下载/上传文件 大文件下载,常被用作持久化通道
ftp.exe 文件传输协议客户端 泄露数据或下载恶意文件
net.exe / net1.exe 网络命令管理工具 创建用户、修改网络配置、侦察内网
taskkill.exe / tasklist.exe 进程管理 结束安全软件进程、列出进程信息

低危命令:视业务需求决定

IIS禁止执行脚本的命令有哪些,怎么设置?

命令 说明 风险场景
ping.exe 网络连通性测试 探测主机存活、作为ICMP隧道
tracert.exe 路由跟踪 信息收集,了解网络拓扑
nslookup.exe DNS查询 解析域名,辅助数据外传
whoami.exe 查看当前用户身份 确认权限,为后续提权做准备

行业共识认为,禁止命令执行时优先从高危命令开始,再根据日志中出现的异常请求逐步扩展到中危命令,避免过度限制影响正常运维。

实战场景:IIS禁止执行脚本命令的配置示例

理论说再多,不如一个真实的配置过程,以下三个场景是站长最常见的安全需求,覆盖了从上传防护到权限控制的完整链路。

防止WebShell通过上传目录执行命令

很多攻击者通过文件上传漏洞将WebShell存到/uploads/目录,然后通过URL直接访问exe或ps1文件来执行命令,配置方法:

  • 在IIS管理器中,选择/uploads/目录,双击“请求过滤”,添加拒绝扩展名.exe、.ps1、.vbs、.bat。
  • 移除该目录的所有脚本处理程序映射,只保留StaticFile。
  • 在web.config中增加<location path="uploads">节点,禁止访问特定命令文件名:
<location path="uploads">
  <system.webServer>
    <security>
      <requestFiltering>
        <denyUrlSequences>
          <add sequence="cmd" />
          <add sequence="powershell" />
          <add sequence="wscript" />
        </denyUrlSequences>
      </requestFiltering>
    </security>
  </system.webServer>
</location>
  • 验证:尝试访问http://你的站点/uploads/shell.exe,应返回404.7状态码。

限制应用程序池的执行权限

即使IIS层面拦截了请求,如果攻击者通过其他漏洞(如本地文件包含)在服务器上直接运行命令,仍需系统级防护。

  • 将应用程序池标识设置为ApplicationPoolIdentity或自定义低权限账户(如IIS_IUSRS)。
  • 使用Windows文件系统权限,禁止该账户对高危命令的执行权限,在C:WindowsSystem32cmd.exe上右键 -> 安全 -> 添加拒绝“读取和执行”权限给应用程序池账户。
  • 注意:不要直接拒绝所有账户,否则操作系统自身可能异常,建议只拒绝IIS相关账户。
  • IIS禁止执行脚本的命令有哪些,怎么设置?

结合URL重写规则禁止命令执行参数

对于命令注入类型的攻击,攻击者常在URL参数中传递命令,如?cmd=whoami,此时请求过滤很难覆盖,而URL重写可以匹配参数内容。

  • 安装URL重写模块,添加入站规则,模式为(cmd.exe|powershell|wscript|regsvr32),条件检查{QUERY_STRING},匹配后返回403或重定向。
  • 规则示例:
<rewrite>
  <rules>
    <rule name="Block cmd execution" stopProcessing="true">
      <match url="." />
      <conditions>
        <add input="{QUERY_STRING}" pattern="(cmd.exe|powershell.exe|wscript.exe)" ignoreCase="true" />
      </conditions>
      <action type="CustomResponse" statusCode="403" statusReason="Forbidden" />
    </rule>
  </rules>
</rewrite>
  • 优点:能拦截隐藏得较深的注入攻击,但不影响正常URL访问。

IIS禁止执行脚本命令的常见问题解答

Q1:IIS禁止执行脚本命令后,会影响网站正常功能吗?

取决于配置范围,如果只禁止了危险命令的文件扩展名,对正常网站功能影响有限,但若直接移除了ASP或PHP脚本处理程序,相应动态页面会全部失效,建议分步操作:先启用请求过滤禁止扩展名,观察日志和功能测试,再逐步收紧,很多情况下,大部分网站根本不需要在高危命令上做额外妥协,因为正常用户不会请求cmd.exe或powershell.exe。

Q2:除了禁止命令,还有哪些辅助安全措施?

单独禁止命令执行无法覆盖所有攻击路径,行业共识认为,IIS安全应结合以下措施:启用请求过滤并限制HTTP动词(如只允许GET和POST)、自定义错误页面隐藏真实错误信息、开启详细日志记录并定期审计、为应用程序池使用独立标识并限制磁盘写入权限、部署WAF(Web应用防火墙)检查恶意请求负载,据微软官方文档,合理的分层防御能将攻击成功率降低相当一部分。

Q3:如何在IIS 10中配置禁止执行PowerShell命令?

IIS 10运行在Windows Server 2016或2019上,打开IIS管理器,分别在站点级别和受影响的子目录(如/uploads)中配置请求过滤,添加拒绝扩展名.ps1、.psm1、.psd1、.ps1xml,在处理程序映射中移除所有PowerShell相关条目(默认可能不存在,但需确认),更彻底的做法是使用Windows AppLocker或软件限制策略,在系统层面禁止PowerShell.exe对非管理员用户执行。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/iis%e7%a6%81%e6%ad%a2%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac%e7%9a%84%e5%91%bd%e4%bb%a4%e6%9c%89%e5%93%aa%e4%ba%9b%ef%bc%8c%e6%80%8e%e4%b9%88%e8%ae%be%e7%bd%ae%ef%bc%9f/

赞 (0)
app的云服务器一台多少钱,哪家最便宜?
上一篇 2026年8月17日 05:49
iOS地图定位怎么设置和使用才准确?,定位不准怎么办?
下一篇 2026年8月17日 05:50

相关推荐

  • ic云服务器_onClose是什么?如何正确使用?

    ic云服务器_onClose是实例关闭时自动触发的回调函数,用于执行清理和资源释放操作,避免数据丢失和成本浪费,什么是ic云服务器_onClose核心概念ic云服务器_onClose属于生命周期管理的一部分,当实例因手动停止、自动伸缩或故障转移而关闭时,系统会主动调用这个回调,让开发者有机会在关机前完成扫尾工作……

    2026年8月20日
    500
  • IIS怎么部署网站?怎么修改绑定域名?

    IIS部署网站的核心是创建站点并绑定域名,修改绑定域名只需在站点绑定设置中编辑或添加即可,IIS怎么部署网站?一步步教你完成建站安装IIS角色:系统自带的Web服务器组件在Windows Server或Windows 10/11专业版上,IIS默认不开启,你需要通过以下方式安装:- 打开**控制面板……

    2026年8月11日
    2000
  • fpga学习视频哪里找?零基础入门教程推荐

    FPGA学习视频是入门硬件描述语言最快的路径,建议从Verilog基础语法入手,结合Xilinx或Intel官方开发板进行实操,而非仅停留在理论观看,很多人认为FPGA学习就是看视频敲代码,其实这只是一个开始,真正的门槛在于思维转换:从软件顺序执行转向硬件并行处理,如果你还在纠结“哪个视频最好”,不如直接看下面……

    2026年7月10日
    2500
  • 服务器主机租用的优势有哪些?,服务器租用哪家性价比高?

    服务器主机租用是当前企业部署业务最高效的方式之一,它以低成本、高可用性和弹性扩展能力,彻底解决了自建机房带来的资金与运维压力,服务器主机租用相比自建机房有哪些优势前期投入差距明显自建机房需要一次性采购机柜、服务器硬件、空调、UPS等设备,加上装修和布线,初期投入动辄数十万甚至上百万,而服务器主机租用采用按月或按……

    2026年7月25日
    800
  • 华为医学AI大模型真的靠谱吗,华为医学AI大模型有哪些应用场景

    华为医学AI大模型通过深度融合盘古大模型底层架构与医疗垂直领域知识,实现了从影像辅助诊断到临床决策支持的全链路智能化,显著提升了基层医疗的诊疗效率与准确性,在数字化转型的深水区,医疗行业正经历一场由技术驱动的深刻变革,过去,医生面对海量的病历数据和复杂的影像资料,往往需要耗费大量精力进行人工甄别,这不仅增加了工……

    2026年6月13日
    2600
  • 分布式缓存服务有哪些优势?分布式缓存服务优势有哪些

    分布式缓存服务通过内存读写、节点横向扩展及高可用架构,能显著提升系统响应速度并降低数据库负载,是构建高性能互联网应用的核心基础设施,为什么传统数据库扛不住高并发?想象一下,你是一家电商平台的后端工程师,双11零点,流量瞬间涌入,成千上万的请求同时指向你的MySQL数据库,磁盘I/O成为瓶颈,查询延迟从几毫秒飙升……

    2026年7月12日
    3800
  • ios香港云服务器_iOS

    对于iOS开发者而言,香港云服务器凭借免备案、低延迟和BGP多线接入,成为App出海与国内联网的最佳桥梁,为什么iOS开发者需要香港云服务器低延迟直接提升用户体验iOS应用的用户遍布全球,香港机房位于亚太网络枢纽,CN2/GIA线路从大陆到香港的延迟通常稳定在30ms到50ms,远优于美国西岸常见的150ms至……

    2026年8月12日
    600
  • 服务器提示403错误怎么办,是什么原因?

    服务器提示403错误,本质上是服务器拒绝了你的访问请求,最常见的原因是文件权限设置不当、IP被屏蔽或.htaccess文件规则冲突,通过逐一排查这些环节,大多数情况下都能快速定位并修复,服务器403错误常见原因:从权限到防火墙403 Forbidden 状态码背后通常是权限管控的某个环节出了问题,业内专家指出……

    2026年7月21日
    300
  • IP数据库和全球加速、CDN全站加速有什么区别?,哪个好

    IP数据库和CDN加速、全球加速、GEIP、全站加速常被混淆,但核心功能完全不同:IP数据库用于定位用户来源,而加速类服务旨在提升网络传输效率,两者经常搭配使用但并非替代关系,IP数据库和CDN加速的本质区别IP数据库本质上是一份地域映射表,它记录着IP地址段对应的国家、城市、运营商等信息,当你访问一个网站时……

    2026年8月1日
    700
  • 服务器端口对客户端开放是什么意思?服务器端口开放检测工具

    当服务器的各种端口对此客户端开放时,意味着该客户端拥有对服务器全服务的完全访问权限,这在绝大多数生产环境中属于极高风险的安全配置,必须立即整改,想象一下,你的服务器是一栋拥有无数房间的大厦,而端口就是通往各个房间的门窗,正常情况下,我们只留一扇正门(如80或443端口)供访客进入,其他门窗都紧紧关闭,当“服务器……

    2026年7月4日
    7600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注