渗透测试中如何辨别网站使用的脚本语言

判断网站使用的脚本语言也是信息收集的一部分,通过判断使用的何种脚本语言,来扩大攻击面。

asp

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

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是技术,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是一种创建动态交互性站点的强有力的服务器端脚本语言。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)
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用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运行它以执行单元测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值