首页 > 其他分享 >Web安全测试点

Web安全测试点

时间:2023-07-21 10:34:02浏览次数:39  
标签:Web HTTP 测试点 IP 安全 测试 服务器 方法

随着因特网的不断发展,人们对网络的使用越来越频繁,通过网络进行购物、支付等其他业务操作。而一个潜在的问题是网络的安全性如何保证,一些黑客利用站点安全性的漏洞来窃取用户的信息,使用户的个人信息泄漏,所以站点的安全性变得很重要。

Web 系统的安全性测试包括以下内容:

(1)Web 漏洞扫描

(2)服务器端信息测试

(3)文件和目录测试

(4)认证测试

(5)会话管理测试

(6)权限管理测试

(7)文件上传下载测试

(8)信息泄漏测试

(9)输入数据测试

(10)跨站脚本攻击测试

(11)逻辑测试

(12)搜索引擎信息测试

(13)Web Service 测试

(14)其他测试

下面是Web漏洞扫描和服务器端信息测试内容:

第一点:Web 漏洞扫描

由于开发和设计的原因,可能导致Web 系统存在漏洞,在测试过程中可以使用一些自动化扫描工具对Web 系统的漏洞进行扫描。但自动化扫描工具只能检测到部分常见的漏洞(如跨站脚本、SQL 注入等),不是针对用户代码的,也不能扫描业务逻辑,无法对这些漏洞做进一步业务上的判断。而往往最严重的安全问题并不是常见的漏洞,而是通过这些漏洞针对业务逻辑和应用的攻击。

Web 目前分为Application 和Web Service 两部分。Application 指通常意义上的Web 应用;而Web Service 是一种面向服务的架构技术,通过标准的Web 协议(如HTTP、XML、SOAP、WSDL)提供服务。

现在市场上Web 漏洞扫描的工具比较多,如WebInspect、N-Stalker、Acunetix Web Vulnerability Scanner、Rational AppScan 等。

第二点:服务器端信息测试

服务器端信息测试主要是从服务器对客户端开发的信息角度来测试服务器被攻击的可能性,以及被攻击的难易程度。主要需要测试以下几方面的信息:

1、服务器允许运行账号权限测试

2、Web 服务器端口测试

3、Web 服务器版本信息测试

4、HTTP 方法测试

5、HTTP DELETE 方法测试

6、HTTP PUT 方法测试

7、HTTP TRACE 方法测试

8、HTTP MOVE 方法测试

9、HTTP COPY 方法测试

(1)服务器允许运行账号权限测试

一般地,运行Web 服务器所在的操作系统所开放的账号权限越高,那么Web 服务器遭到攻击的可能性越大,并且产生的危害也越大。因此,不应使用Root、Administrator 等特权账号或高级别权限的操作系统账号来运行Web 系统,应该尽可能地使用低级别权限的操作系统账号,以此降低Web 服务器被攻击的风险。

测试时登录Web 服务器操作系统,查看运行Web 服务器的操作系统账号,确定操作系统的账号是否为Root、Administrator 等特权账号或高级别权限账号,如果是,则存在漏洞。

对于Windows 操作系统:打开Windows 任务管理器,选择“进程”选项卡,选中“显示所有用户的进程”复选框,检查运行Web 服务器的账号。

对UNIX 或Linux 系统:运行“ps–ef|grep java”命令,返回结果第一列的操作系统用户就是运行Web 服务器的账号。例如以下运行信息:

root 4035 4010 0 17:13 pts/2 00:00:00 grep java

(2)Web 服务器端口测试

有时Web 服务器除业务端口外还会开放一些默认端口(如JBoss 开放的8083),这些默认端口对最终用户是不需要开放的,而且也不会维护,容易被攻击,本测试的目的在于发现服务器上未使用的Web 端口。

可以使用端口扫描工具对Web 服务器域名或IP 地址(如IP 地址为192.168.1.103)进行扫描,检查未开放业务不需要使用的Web 服务端口。常用的端口扫描工具有NetScanTools、WinScan、SuperScan、NTOScanner、WUPS、NmapNT 和Winfingerprint。

(3)Web 服务器版本信息测试

为了防止黑客攻击,在很多情况下,通过获取Banner 的信息可以获取HTTP 指纹识别方法。通常会将Web 服务器的信息进行隐藏或者通过配置、增加插件来更改或模糊服务器的Banner 信息。

HTTP 指纹识别现在已经成为应用程序安全中一个新兴的话题,指纹识别可以分为两步:一是对指纹进行收集和分类;二是将未知的指纹同被存储在数据库中的指纹进行比较,从而找出最符合的指纹。

操作系统指纹识别在网络评估中是一件常见的工作,现在已有很多操作系统指纹识别技术,操作系统指纹识别为什么能成功呢?因为每个操作系统实现TCP/IP 协议时有微小的差别,当前比较流行的是利用TCP/IP 堆栈进行操作系统识别。

HTTP 指纹识别的原理大致也是如此,记录不同服务器对HTTP 协议执行中的微小差别进行识别,HTTP 指纹识别比TCP/IP 堆栈指纹识别复杂许多,因为定制HTTP 服务器的配置文件、增加插件或组件使得更改HTTP 的响应信息变得更复杂。

在测试过程中可以使用一些工具进行渗透测试,来获取Web 服务器的相关版本信息。Httprint就是一个Web 服务器指纹工具,通过该工具可以对Web 服务器进行渗透测试。尽管可以通过改变服务器的旗帜字符串(server bannerstrings),或通过类似mod_security或servermask的插件混淆事实,但Httprint 工具依然可以依赖Web 服务器的特点去准确地识别Web 服务器。Httprint 也可用于检测没有服务器旗帜字符串的网络功能设备,如无线接入点、路由器、交换机、电缆调制解调器等。

运行Httprint_gui.exe,在Host 列中输入主机域名(如果没有域名则输入IP 地址),在端口列中输入端口号。如果为HTTPS,则要选择锁图标列的复选框,如图12-8 所示

 

单击程序下方的运行按钮,查看相关报告,确定报告中是否存在Web 服务器准确的版本信息,如图12-9 所示

 

(4)HTTP 方法测试

HTTP 方法测试主要是测试HTTP 开发的方法,有些Web 服务器默认情况下开放了一些不必要的HTTP 方法(如DELETE、PUT、TRACE、MOVE、COPY),这样就增加了受攻击面。

HTTP 请求常见的方法有(所有的方法必须为大写):GET、POST、HEAD、PUT、DELETE、TRACE、CONNECT 和OPTIONS,详细见表12-7

 

HTTP 方法测试的步骤如下:

第一步:单击“开始”→“运行”命令,输入cmd 命令后按Enter 键,运行cmd.exe。

第二步:输入命令“telnet IP 端口”(其中IP 和端口按实际情况填写,用空格隔开,如telnet 192.168.1.3 80)。

第三步:按Enter 键。

第四步:在新行中输入命令OPTIONS /HTTP/1.1,然后按Enter 键。

第五步:观察返回结果中Allow 的方法列表。

返回结果样例:

http/1.1 200 OK

server: Apache-Coyote/1.1

X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5

Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS

Content-Length: 0

Date: Mon, 29 Jun 2009 08:02:47 GMT

Connection: close

如果返回结果中包含不安全的HTTP 方法(如DELETE、PUT、TRACE、MOVE、COPY),

则验证对这些方法的防范措施是否可用,如果方法可用则说明存在漏洞,测试无法通过。

备注:由于不同的Web 服务器支持的HTTP 协议版本不同,如果系统不支持HTTP/1.0,那么第四步返回“HTTP/1.0 400 Bad Request”,这种情况下,应该更改第四步的输入行为OPTIONS / HTTP/1.0。

(5)HTTP DELETE 方法测试

如果Web 服务器开放了DELETE 方法,那么攻击者能够通过该方法删除Web 服务器上的文件,所以需要测试通过DELETE 方法是否能将服务器上的文件删除。DELETE 方法测试步骤如下:

在测试前先在Web 网站上创建一个文件(如test.txt)。

第一步:单击“开始”→“运行”命令,输入cmd 命令后按Enter 键,运行cmd.exe。

第二步:输入命令“telnet IP 端口”(其中IP 和端口按实际情况填写,用空格隔开,如telnet 192.168.1.3 80),并按Enter 键。

第三步:在新行中输入命令DELETE /test.txt HTTP/1.0,然后按Enter 键。

第四步:查看服务器上的test.txt 文件是否被删除。

该文件不能被删除,如果被删除,说明Web 服务存在风险.

说明:由于不同的Web 服务器支持的HTTP 协议版本不同,如果系统不支持HTTP/1.0,

那么第三步返回“HTTP/1.0 400 Bad Request”,这种情况下,应该更改第三步的输

入行为DELETE /index.jsp HTTP/1.1。

(6)HTTP PUT 方法测试

如果Web 服务器开放了PUT 方法,那么攻击者能够通过该方法上传任意文件到Web 服务器的一些目录中,包括一些Web 木马程序。测试时可以使用测试工具来模拟上传文件,对服务器可写权限进行测试。IIS PUT Scaner 为一款检测服务器可写漏洞的工具,通过IIS PUT Scaner 工具检测的步骤如下:

第一步:运行IIS PUT Scaner 程序(假设已经安装该工具)。

第二步:在Start IP 和End IP 输入框中输入Web 服务器的IP 地址,在Port 输入框中输入对应

的端口,选中复选框Try to upload file 和Try on other systems,如图12-10 所示

第三步:查看结果,PUT 栏中的值不能为YES,如果是且Update File 栏中的值为ok,说明文件可以被上传到服务器。同时查看Web 服务器中没有新创建的文件(如上传test.txt 文件),并且通过http://IP/test.txt请求不到该文件。

(7)HTTP TRACE 方法测试

如果Web 服务器开放了TRACE 方法(主要用于客户端通过向Web 服务器提交TRACE 请求来进行测试或获得诊断信息),攻击者能够通过该方法进行跨站攻击。

跨站脚本攻击(Cross Site Script Execution,XSS)是指入侵者在远程Web 页面的HTML 代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面时,嵌入其中的脚本将被解释执行。由于HTML 语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML 代码,例如记录论坛保存的用户信息(Cookie),由于Cookie 保存了完整的用户名和密码资料,用户就会遭受安全损失。如JavaScript脚本语句aler(t document.cookie)就能轻易获取用户信息,它会弹出一个包含用户信息的消息框,入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍作分析便可以获取用户的敏感信息。

HTTP TRACE 方法测试的步骤如下:

第一步:单击“开始”→“运行”命令,输入cmd 命令后Enter 车键,运行cmd.exe。

第二步:输入命令“telnet IP 端口”(其中IP 和端口按实际情况填写,用空格隔开,如telnet 192.168.1.3 80),然后按Enter 键。

第三步:在新行中输入TRACE/HTTP/1.0 命令,然后按Enter 键。

第四步:观察返回的结果信息,Web 服务器返回的信息提示TRACE 方法“not allowed”。

备注:由于不同的Web 服务器支持的HTTP 协议版本不同,如果系统不支持HTTP/1.0,

那么第三步返回“HTTP/1.0 400 Bad Request”,这种情况下,应该更改第三步的输

入行为TRACE / HTTP/1.1。

(8)HTTP MOVE 方法测试

如果Web 服务器开放了MOVE 方法,用于请求服务器将指定的页面移到另一个网络地址,该方法不安全,容易被利用。

HTTP MOVE 方法测试的步骤如下:

第一步:单击“开始”→“运行”命令,输入cmd 命令然后按Enter 键,运行cmd.exe。

第二步:输入命令“telnet IP 端口”(其中IP 和端口按实际情况填写,用空格隔开,如telnet 192.168.1.3 80),然后按Enter 键。

第三步:在新行中输入MOVE /info/b.html /b.html HTTP/1.0 命令,并按Enter 键。

第四步:观察返回的结果信息,Web 服务器返回的信息提示MOVE 方法“not supported”。

备注:由于不同的Web 服务器支持的HTTP 协议版本不同,如果系统不支持HTTP/1.0,那么第三步返回“HTTP/1.0 400 Bad Request”,这种情况下,应该更改第三步的输入行为MOVE /info/b.html /b.html HTTP/1.1。

(9)HTTP COPY 方法测试

如果Web 服务器开放了COPY 方法,用于请求服务器将指定的页面拷贝到另一个网络地址,该方法不安全,容易被利用。

HTTP COPY 方法测试的步骤如下:

第一步:单击“开始”→“运行”命令,输入cmd 命令后按Enter 键,运行cmd.exe。

第二步:输入命令“telnet IP 端口”(其中IP 和端口按实际情况填写,用空格隔开,如telnet 192.168.1.3 80),然后按Enter 键。

第三步:在新行中输入COPY /info/b.html /b.html HTTP/1.0 命令,然后按Enter 键。

第四步:观察返回的结果信息,Web 服务器返回的信息提示COPY 方法“not supported”。

标签:Web,HTTP,测试点,IP,安全,测试,服务器,方法
From: https://www.cnblogs.com/yhcTACK/p/17570627.html

相关文章

  • CTFer成长记录——CTF之Web专题·攻防世界-PHP2
    一、题目链接  https://adworld.xctf.org.cn/challenges/list二、解法步骤  打开网页,只有一个提示:查看源代码:也是啥也没有,这个时候访问index.phps才查看源代码:  可以发现我们需要构造id的值不等于"admin",而且url解码后要等于"admin",那我们可以id进行url编码。注意这......
  • web code监控
    #!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/7/414:00#@Author:zk_linux#@File:monitoring_code.py#@Software:PyCharm#@Description:Monitoringverificationcode,SMSpinalarmimportrequestsimporturllibimportloggin......
  • webpack学习笔记
    webpack:学习目标:1知道能做什么,不能做什么学会webpack常用功能2了解大致原理知道webpack怎么工作,webpack结果文件怎么阅读3根据业务合理配置webpack 学习注意:1不要死记写法,记住规律2不要试图学会所有功能3了解原理,但没必要深入原理 课程安排:概念讲解+基本......
  • .net core webapi 局域网内机器可以互相访问
    1、  使用localhost的方式运行程序  dotnetFitnessequipment.dll--urls=http://localhost:5038    是无法通过ip访问的,只可以使用localhost访问    2、以ip方式运行程序,dotnetFitnessequipment.dll--urls=http://192.168.3.213:5038     ......
  • 在调试状态下使用本机ip访问webapi
    1、在调试模式下无法通过ip访问webapi,但是可以使用localhost或者127.0.0.1加端口访问   2、因为在调试模式下运行它,Vs2022默认正在使用IIS-Express。默认情况下,IIS-Express仅绑定到localhost. 3、为了调试状态可以通过ip访问,需要打开位于以下位置的IIS-Express应用......
  • 《渗透测试》Day1 WEB攻防-前后台功能点&文件下载&文件读取&文件删除&目录遍历&目录穿
     #文件安全-下载&删除-黑白盒1、下载=读取常规下载URL:http://www.xiaodi8.com/upload/123.pdf可能存在安全URL:http://www.xiaodi8.com/xx.xx?file=123.pdf利用:常规下载敏感文件(数据库配置,中间件配置,系统密匙等文件信息)2、文件删除(常出现后台中)可能存在安全问题:前台或后台......
  • Coding添加WebHook
    一、新增部署公钥二、同步代码三、更新目录权限四、创建WebHook #!/bin/bashecho""#输出当前时间date--date='0daysago'"+%Y-%m-%d%H:%M:%S"echo"Start"#git项目路径gitPath="/www/wwwroot/*****"#git网址gitHttp="[email protected]......
  • weblogic常用
    weblogic启动用户账号登录(weblogic)查看weblogic环境变量env|grepweblogic确认weblogic版本号cd$WL_HOME/server/libjava-cpweblogic.jarweblogic.version或java-cp$PROFILE_CLASSPATHweblogic.version-verbose查看当前weblogic补丁命令cd$WL_HOME&&cd........
  • unity打开内置网页(UniWebView插件)
    UniWebView支持IOS和安卓,window不行UniWebView5|网络|UnityAssetStore安卓demo场景打包就能用,IOS可能得改下配置url必须加协议前缀http://、https:// ......
  • gRPC如何保障数据安全传输
    什么是gRPC?gRPC是由Google开发的高性能、开源的RPC(RemoteProcedureCall)框架,用于在客户端和服务器之间进行通信。它基于ProtocolBuffers(protobuf)进行消息序列化和反序列化,支持多种通信协议,如HTTP/2、TCP和gRPC提供的协议。gRPC的安全需求在现代网络环境中,数据的安......