asp本身并不是一种脚本语言,他只是提供了一种使镶嵌在HTML页面中的脚本程序得以运行的环境,ASP采用脚本语言VBScript(Java script)作为自己的开发语言。ASP的后缀名为.asp
早期,浏览器中显示的网页仅仅只是静态的图文组合,浏览者可以浏览网页的信息,但是不能和浏览器产生交互(例如发表自己的意见、购物等等),后来才出现的动态网页,是指客户端浏览器和web服务器端可以互动,也就是服务器端实时的处理浏览器端的请求(Request),然后再将处理结果作为对浏览器端的响应(Respouse)传送给浏览器。
ASP作为IIS1.0的附属产品赠送,后来的ASP2.0和IIS4.0是同一个时期,SSI5.0和ASP3.0是在Windows 2000操作系统中自带的。
aspx文件是微软的在服务器端运行的动态网页文件,不像静态的HTML文件。它通过IIS解析后得到动态页面,不是asp简单的升级版,它是在服务器端靠服务器编译执行的程序代码。
ASP使用脚本语言,每次请求的时候,服务器端调用脚本解析引擎来解析其中的程序代码,而ASP.NET则可以使用多种脚本语言编写,而且是全编译执行的,比ASP快。
aspx就是用asp.net开发出来的网站的网页的默认后缀名。asp是.net技术,她得安全性比较高。
aspx文件都是文本形式的,可以用任何的文本编辑器打开。
asp和aspx的区别
asp采用的脚本语言为VBScript,文件后缀名为.asp。ASP程序只能通过IIS来工作,而IIS是Windows专属的,所以可以根据后缀名为asp判断其为Windows系统。
aspx使用asp.net编写的,文件的后缀名为.aspx。ASP.NET是基于Framework框架之上的,这是微软专属的,一般运行在Windows上,但是也不排除运行在linux上
jsp是技术,jsp技术以Java语言作为脚本语言,JSP是一种动态网页技术标准。他使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头,%>结尾。JSP是一种Java servlet(Java小程序),主要用于实现Java web应用程序的用户界面部分。开发通常通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据及其他数据源,然后动态地创建网页。JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息
其对应的web服务器需支持JSP和Servlets发发,如nginx和Tomcat等
PHP是“超文本预处理器”,是在服务端执行的脚本语言。PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP代码在服务器上执行,结果以HTML形式返回给浏览器,所以web服务器不是发送源代码,而是首先将PHP代码转换为纯HTML格式来解析代码。
1.根据cookie值
根据数据包中传递的cookie值,比如PHP使用的会话ID是PHPSESSID,JSP使用的会话ID是JSESSION。下面网站使用的脚本语言为JSP。
2.响应包的server值
有时候网站的响应包会携带server信息,如下,这种情况多存在于内网中。公网很少,所以知道脚本语言为php。
3.网站查询
Check web technologies used by a website - Site Info
域名 (例如:
Web Technologies used by Aluyy.cn
)
4.根据服务器类型判断
IIS服务器一般都是ASP.NET。
Tomcat、Resin、JBoss一般都是java。
Nginx,很有可能是PHP或者Python之类的脚本语言。
5.使用Google hack语法
site:xxx.com inurl:php
site:xxx.com php
前面搜索域名,后面搜索脚本语言的后缀,例如php可以换成:aspx、asp、jsp
6.根据服务器平台来判断脚本
IIS6.0一般都是asp,小部分是aspx,也有很少一些php
IIS7.0一般都是aspx,小部分是asp
Nginx一般都是php
Apache一般都是php
小tips
1.构造畸形的请求
fuzz一下,让网站报错,很多信息可能隐藏在报错在中。
2.识别cms框架
通过识别cms框架的方式,类似扫描器或浏览器插件的原理,通过识别目录,指纹等信息来识别,如wordpress,joomla等,框架识别到了,语言也就知道了。
3.看http的返回头
4.通过前端文件分析
比如某些html中的链接,还有js中使用ajax技术需要请求的地址。
5.以及在网站后面加域名+index.php\idnex.asp\index.jsp\index.aspx\defualt.php\defualt.asp\default.jsp\default.aspx能正常打开该网站的就是用什么语言来做的----这些不是绝对,例如发开者更改了文件名字就行不通了,不过也可以通过burp进行爆破来尝试。
6.根据目录结构
包括url的结构,静态文件的结构等,如果使用了开发框架或者CMS系统,这些目录结构都有一定的规则。
7.根据网页的内容
可以用正则去匹配HTML代码,找出copyright(版权信息)、powered by(技术支持),进而得知使用的语言
8.网站查询
http://w3techs.com/sites/info/域名(例如:baidu.com)
这是一个简易的 Python 脚本,每隔一段时间获取页面,如果页面代码有变化,通过 SMTP 发信提醒你。仅适用于简单的页面。
import time
import requests
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.u...
Date: Thu, 29 Nov 2012 01:08:16 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.2.17
Connection: close
Transfer-Enc...
1. 根据 meta 信息判断
不少的
网站
会在 meta 添加框架的信息,比如 Joomla、XOOPS、MediaWiki 会添加 generator;phpBB 会添加 copyright;Avactis 会添加 author。通过这些可以探测
网站
使用
的建站系统,从而知道
使用
的语言。
2. 根据 script 标签判断
和上面的一样,探测
网站
使用
的建站系统,从而知道
使用
的语言。
【目标站的
脚本语言
识别】
1-1 最简单的方法,在域名后面分别加个/index.asp /index.aspx /index.php /index.jsp
不报错则是
网站
支持的
脚本语言
大部分
网站
根目录都会放个index首页文件。这是最快速最简单的方式。
1-2 F12审查元素,在返回头一般都能看到
网站
脚本。
1-3
网站
的robots.txt robo...
1.从判定结果
中
截取出代码状态。
2.编辑判定脚本
中
使用
curl -I 命令测试,然后通过awk截取状态代码。
3.写发送邮件的脚本,用sendEmail(生产环境有配套的模板)。
4.将判定与发送邮件关联起来。
以www.51xit.top为例,先
使用
curl -I 命令测试:
200就是我们要截取代码状态
可以
使用
Simulink Test Manager(STM)来进行单元测试并自动化测试过程。STM是Simulink的一个可扩展框架,用于管理测试用例和测试结果。您可以
使用
STM创建测试套件和测试用例,并将其与模型集成以验证模型的正确性。
在STM
中
,您可以
使用
MATLAB脚本来自定义测试任务。您可以
使用
MATLAB脚本编写测试用例、测试步骤和测试脚本。测试脚本可以
使用
M语言编写,以执行各种测试操作,例如设置输入信号、运行模型、比较输出信号等。您可以
使用
MATLAB脚本
中
的assert函数来验证预期和实际输出之间的差异。
以下是
使用
STM进行单元测试的一般步骤:
1. 创建测试套件和测试用例。
2. 在测试用例
中
定义测试步骤。
3. 在测试步骤
中
编写测试脚本。
4. 运行测试套件并查看测试结果。
下面是一个简单的MATLAB脚本示例,用于设置输入信号并运行模型:
% Create input signal
time = linspace(0, 10, 100);
input_signal = sin(time);
% Set input signal in model
set_param('myModel/Input', 'Data', 'input_signal');
% Simulate model
sim('myModel');
% Get output signal
output_signal = yout.signals.values;
% Compare output signal with expected signal
expected_signal = cos(time);
assert(all(abs(output_signal - expected_signal) < 0.01), 'Output signal does not match expected signal.');
该脚本首先创建一个正弦输入信号,然后将其设置为名为“Input”的模型输入端口的数据。接下来,它
使用
sim命令运行模型,并获取输出信号。最后,它
使用
assert函数比较输出信号和预期信号,并在它们之间的差异超过0.01时引发异常。
您可以将此脚本作为测试步骤添加到测试用例
中
,并在STM
中
运行它以执行单元测试。