判断网站使用的脚本语言也是信息收集的一部分,通过判断使用的何种脚本语言,来扩大攻击面。
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)