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框架的
运行状态
