ASP.NET Web Forms框架识别

ASP.NET 支持三种不同的开发模式:

Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体):

|--------------------------------------------------------------|---|----------------------------------------------------|---|-----------------------------------------------|
| Web Pages 单页面模式 | | MVC 模型-视图-控制器 | | Web Forms 事件驱动模式 |
| 最简单的 ASP.NET 模式。 与 PHP 和经典 ASP 相似。 内置了数据库、视频、图形、社交媒体等模板和帮助器。 | | MVC 将 Web 应用程序分成 3 个不同的组成部分: 模型负责数据 视图负责显示 控制器负责输入 | | 传统的 ASP.NET 事件驱动开发模式: 带有服务器控件、服务器事件和服务器代码的网页。 |

ASP.NET 文件扩展名

Web Pages框架的文件后缀是 .cshtml 、.vbhtml

Web Forms框架的文件后缀是 .asp、.aspx、.ashx

MVC框架是直接访问路由接口例如 /Login/index

ihoneyBin.py脚本输出的结果有其他架构的,我们可以通过 Web Forms 框架的文件后缀是 .asp、.aspx、.ashx来筛选 Web Forms架构的

bande_aspxfind.py代码

python 复制代码
import requests
import argparse
from urllib.parse import urlparse
from bs4 import BeautifulSoup
from requests.packages import urllib3

banner = r"""
                ()
                JL
                ||
                LJ
          _,--"""""""---.
        ,'               `.
       /                   \
      J                     L
      F                     L
     J                      J
     |                      J
  ___L______________        J
 /,---------------. "".     J
JJ   /     \/      |  J     J
LL  J      J       |   L    J
JJ  J #    J #     |   L    |
 \\__`.___,_`.____,'   F    |
  ""-.---------....___/     |
     |_T--+---+--.,._       |
       |--|----\---\-`.     |
       |__|____J___J_ F     F
      _|__|____|___|_/      L
     |                      L
     |____________________M-K
"""
print(banner)
# 禁用SSL警告
urllib3.disable_warnings()

def parse_args():
    """解析命令行参数"""
    parser = argparse.ArgumentParser(description='ASP.NET Web Forms检测工具(只输出URL)')
    parser.add_argument("-u", "--url", required=True, help="要检测的目标网站URL")
    parser.add_argument("-c", "--cookie", help="网站cookie(可选)")
    return parser.parse_args()

def is_webforms(url, cookie=None):
    """检测目标网站是否使用ASP.NET Web Forms框架"""
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    
    if cookie:
        headers["Cookie"] = cookie
    
    try:
        response = requests.get(url, headers=headers, timeout=10, verify=False)
        response.encoding = response.apparent_encoding
        html_content = response.text
        parsed_url = urlparse(url)
        path = parsed_url.path.lower()
        
        # 检查文件扩展名
        if any(ext in path for ext in ['.aspx', '.ascx', '.ashx']):
            return True
        
        soup = BeautifulSoup(html_content, 'html.parser')
        
        # 检查ViewState
        if soup.find('input', {'id': '__VIEWSTATE'}):
            return True
        
        # 检查其他Web Forms特有元素
        webforms_elements = ['__EVENTTARGET', '__EVENTARGUMENT', '__EVENTVALIDATION', '__PREVIOUSPAGE']
        for element in webforms_elements:
            if soup.find('input', {'id': element}):
                return True
        
        # 检查表单action属性
        for form in soup.find_all('form'):
            if form.get('action', '').lower().endswith('.aspx'):
                return True
        
        return False
        
    except:
        return False

if __name__ == "__main__":
    args = parse_args()
    target_url = args.url
    
    if not target_url.startswith(('http://', 'https://')):
        target_url = 'http://' + target_url
    
    if is_webforms(target_url, args.cookie):
        print(target_url)

脚本会自动去处理 ihoneyBin.py 工具输出的 result.txt 文件里的url地址,然后去识别是 Web Forms框架的

运行状态

相关推荐
前端世界8 小时前
ASP.NET 实战:用 CSS 选择器打造一个可搜索、响应式的书籍管理系统
css·后端·asp.net
vortex510 小时前
ASP vs ASP.NET vs ASP.NET Core:三代微软 Web 技术核心区别解析
前端·microsoft·asp.net
安_1 天前
解决添加asp.net网站报错请添加 MIME 映射
后端·asp.net
qq_12498707535 天前
基于C#的贵州省黔北地区乡村避暑生活共享平台设计与实现(源码+论文+部署+安装)
c#·毕业设计·asp.net·生活
William_cl7 天前
【ASP.NET MVC 进阶】DataAnnotations 特性验证全解析:从基础到避坑,让数据校验像 “安检“ 一样靠谱
后端·asp.net·mvc
William_cl8 天前
C# ASP.NET MVC Model 分类:数据传输对象(DTO)—— 跨层传数的 “精简快递“
c#·asp.net·mvc
元直数字电路验证11 天前
ASP.NET Core Web APP(MVC)开发中无法全局配置 NuGet 包,该怎么解?
前端·javascript·ui·docker·asp.net·.net
William_cl11 天前
拆解ASP.NET MVC 视图模型:为 View 量身定制的 “数据小票“
后端·asp.net·mvc
宝桥南山11 天前
.NET10 - 尝试一下Blazor Web Assembly Standalone App的fingerprint新特性
microsoft·微软·c#·asp.net·.net·.netcore
William_cl13 天前
从 MVC 5 到 Core MVC:ASP.NET MVC 框架的 “进化之路“
后端·asp.net·mvc