Web应用安全测试扫盲

article/2025/10/2 4:42:40

最近新闻热点《西北工业大学遭美国国家安全局网络攻击事件》想必大家都看到了,攻击的目的无外乎获取涉及到国安的机密数据。

移动互联网时代,Web应用产生并存储海量用户隐私以及交易数据,对Web应用进行安全测试变得越来越重要。

本文属于扫盲贴,给大家介绍下网站安全测试的概念、工具、关键术语以及测试方法,对安全测试有个大概的了解。

什么是安全测试?

简单理解安全测试就是一个测试机密数据是否安全的过程(即验证数据不会被没有权限的个人访问到)。

关键术语

什么是“漏洞”?

就是Web应用程序中的一个缺陷。这种“缺陷”的原因可能是由于应用程序中的错误、注入(SQL/脚本代码)或病毒的存在。

什么是“URL操作”?

Web应用会通过URL在客户端(浏览器)和服务器之间传递信息。更改URL中的一些信息有时可能会导致服务器的意外行为,这被称为URL操作。

什么是“SQL注入”?

通过Web应用界面将SQL语句插入到查询框,然后由服务器执行的过程。

什么是“XSS(跨站点脚本攻击)”

XSS 允许恶意用户将代码植入到 web 网站里面,供给其它用户访问,当用户访问到有恶意代码的网页就会产生 xss 攻击。XSS是因为用户输入的内容被浏览器当作了前端代码执行。

安全测试方法

为了对Web应用程序进行有效的安全测试,安全测试人员应该对HTTP协议非常了解。了解客户端(浏览器)和服务器如何通过HTTP进行通信非常重要。

#1) 密码破解

Web应用程序上的安全测试可以从“密码破解”做起。为了登录应用程序,理论上可以盲猜用户名/密码,也可以使用一些密码破解工具。市面上存在大量的开源密码破解器。

如果Web应用程序没有强制要求用户设置复杂的密码(例如,带有字母表、数字和特殊字符,或至少有特定数量的字符),破解用户名和密码可能不需要很长时间。

如果用户名或密码存储在cookie中而不加密,那么攻击者可以使用不同的方法来窃取用户cookie和存储在cookie中的信息,如用户名和密码。

#2)URL参数传递加密测试

测试人员应该检查URL是否传递涉及用户隐私的重要信息,例如密码明码等。因为当应用程序使用HTTP GET方法在客户端和服务器之间传递信息时,你的密码很可能被不法分子拦截捕获。

通过HTTP GET请求将用户信息传递给服务器进行身份验证或获取数据。攻击者可以操作从此GET请求传递到服务器的每个输入变量,以获取所需信息或损坏数据。在这种情况下,应用程序或Web服务器的任何异常行为都是攻击者进入应用程序的大门。

#3)SQL注入

下面介绍下SQL注入。在任何文本框中输入单个引号(')都应被应用程序拒绝。相反,如果测试人员遇到数据库错误,这意味着用户输入被插入某个查询中,然后被应用程序执行了。在这种情况下,应用程序非常容易受到SQL注入的影响。

SQL注入攻击非常重要,因为攻击者可以从服务器数据库获取重要信息。如果用户输入数据需要传递给SQL语句以查询数据库,攻击者可以注入SQL语句的一部分作为用户输入,以从数据库中提取重要信息。

即使攻击者成功攻破了应用程序,从浏览器上显示的SQL查询错误中,攻击者也可以获得他们想要的信息。在这种情况下,应正确处理/转义用户输入中的特殊字符。

#4)跨站点脚本攻击(XSS)

攻击者可以使用此方法在被攻击者浏览器上执行恶意脚本或URL。使用跨站点脚本,攻击者可以使用JavaScript等脚本来窃取用户cookie和存储在cookie中的信息。

例如,http://www.examplesite.com/index.php?Userid=123&query=xyz

攻击者可以轻松地将一些<script>作为“&查询”参数传递,该参数可以获取浏览器上的重要用户/服务器数据。

最经典的弹窗语句:<script>alert(1)</script>

c6620a8aef707b1f0ca3454e4a582270.jpeg

 

在安全测试期间,测试人员应非常小心,不能修改web应用的以下任何内容:

  • 应用程序或服务器的配置。

  • 在服务器上运行的服务。

  • 应用程序后台存储的用户数据。

  • 应避免在生产环境进行安全测试。

     

安全测试工具有哪些?

  • 乌云网:http://www.anquan.us/

  • 漏洞盒子:https://www.vulbox.com/

  • 360网站安全检测:http://webscan.360.cn/

  • 其他:appsans、axws

- END -


下方扫码关注 软件质量保障,与质量君一起学习成长、共同进步,做一个职场最贵Tester!

  • 后台回复【测开】获取测试开发xmind脑图

  • 后台回复【加群】获取加入测试社群!

 

聊聊工作中的自我管理和向上管理

经验分享|测试工程师转型测试开发历程

聊聊UI自动化的PageObject设计模式

细读《阿里测试之道》

我在阿里做测开

 


http://chatgpt.dhexx.cn/article/qNSJrOAD.shtml

相关文章

Web 安全测试之信息泄漏测试

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

MYSQL数据库安全测试

1.利用渗透机场景kali中的工具确定MySQL的端口&#xff0c;将MySQL端口作为Flag提交&#xff1b; Nmap -sV -p- 172.16.101.243 flag{3358} 2.管理者曾在web界面登陆数据库&#xff0c;并执行了 {select ‘<?php echo ;system($_GET[\cmd\]); echo ; ?>’ INTO OUTFI…

Web安全测试-WebScarab工具

转载自web安全测试—WebScarab工具介绍&#xff08;中间攻击&#xff0c;可以修改请求参数&#xff09; 1.1 Webscarab1.1.1 工具安装1.1.2 功能原理1.1.3 工具使用1.1.34 使用心得 工具下载&#xff1a;WebScarab工具下载 1.1 Webscarab 【功能】 WebScarab是一个用来分析使…

web安全测试概述

一、关于安全 1、安全问题的根源&#xff1a; 1&#xff09;、分层思想&#xff0c;这个分层包括网络分层和软件分层等&#xff0c;分层可以将大的问题划分为不同的层次&#xff0c;层次与层次之间通过一定的接口标准进行信息交换&#xff0c;从而将一个大问题拆分开来由不同…

【安全】Web渗透测试(全流程)

1 信息收集 1.1 域名、IP、端口 域名信息查询&#xff1a;信息可用于后续渗透 IP信息查询&#xff1a;确认域名对应IP&#xff0c;确认IP是否真实&#xff0c;确认通信是否正常 端口信息查询&#xff1a;NMap扫描&#xff0c;确认开放端口 如果不会用Nmap&#xff0c;看这里…

WEB渗透之数据库安全——MySQL

意识薄弱-弱口令爆破 安全机制-特定安全漏洞 0x00 MySQL默认配置root用户禁止外连 就算爆破出正确用户名密码也无法登录&#xff0c;如果爆破出非root用户账号密码&#xff0c;价值也不大 所以如果目标网站部署了phpMyAdmin,找到phpMyAdmin目录&#xff08;如果使用phpStudy…

web安全渗透测试

通过浏览器访问http://靶机服务器IP/1&#xff0c;对该页面进行渗透测试, 找到flag格式&#xff1a;flag&#xff5b;Xxxx123&#xff5d;&#xff0c;括号中的内容作为flag值并提交&#xff1b;&#xff08;2分&#xff09;通过浏览器访问http://靶机服务器IP/2&#xff0c;对…

菜鸟浅谈——web安全测试

本文仅为小白了解安全测试提供帮助 一&#xff1a;安全测试注意事项 1&#xff09;要注意白帽子与黑客之间的区别 2&#xff09;在挖漏洞挣外快时&#xff0c;注意不要使用安全扫描或暴力破解软件对上线网站进行扫描或攻击。 不要对上线网站造成破坏&#xff0c;不要去获取网…

WEB安全_基础入门_系统及数据库,明确安全测试思路(演示只需要熟悉流程)

目录 前言一、操作系统层面背景知识点1.识别操作系统的常见方法方式一&#xff1a;改变大小写看操作系统的类型方式二&#xff1a;TTL判断方式三&#xff1a;nmap端口判断 2.简要两者区别及识别意义3.操作系统层面漏洞类型对应意义SQL注入漏洞跨站脚本漏洞弱口令漏洞HTTP报头追…

web平台安全测试方案

平台安全测试方案 1、 测试目的 能尽可能发现当前系统存在的安全隐患&#xff0c;在漏洞报告提供出有价值的建议通过报告修复漏洞后&#xff0c;能减少系统出现严重的安全事故 2、测试对象 Web应用程序服务器操作系统 3、测试工具及环境 AppScan&#xff08;Windows10&am…

什么是web安全测试

1.1什么是web安全测试&#xff1f; Web安全测试就是要提供证据表明&#xff0c;在面对敌意和恶意输入的时候&#xff0c;web系统应用仍然能够充分地满足它的需求 1.2为什么进行Web安全测试 2005年06月&#xff0c;CardSystems&#xff0c;黑客恶意侵入了它的电脑系统&#x…

web安全测试内容

一. 首先你得了解Web Web分为好几层&#xff0c;一图胜千言&#xff1a; 事实是这样的&#xff1a; 如果你不了解这些研究对象是不可能搞好安全研究的。 这样看来&#xff0c;Web有八层&#xff08;如果把浏览器也算进去&#xff0c;就九层啦&#xff0c;九阳神功……&#xff…

解决报错RuntimeError: set_sizes_and_strides is not allowed on a Tensor created from .data or .detach().

完整报错信息如下 RuntimeError: set_sizes_and_strides is not allowed on a Tensor created from .data or .detach(). If your intent is to change the metadata of a Tensor (such as sizes / strides / storage / storage_offset) without autograd tracking the change…

基于keras的卷积神经网络(CNN)

1 前言 本文以MNIST手写数字分类为例&#xff0c;讲解使用一维卷积和二维卷积实现 CNN 模型。关于 MNIST 数据集的说明&#xff0c;见使用TensorFlow实现MNIST数据集分类。实验中主要用到 Conv1D 层、Conv2D 层、MaxPooling1D 层和 MaxPooling2D 层&#xff0c;其参数说明如下…

Grad strides do not match bucket view strides.This may indicate grad was not created according to th

家人们来看看是不是报这个 warning: [W reducer.cpp:283] Warning: Grad strides do not match bucket view strides. This may indicate grad was not created according to the gradient layout contract, or that the params strides changed since DDP was constructed.…

Python多维数组跨度strides(学习笔记)

Python多维数组跨度 今天就来搞明白有关于多维数组的跨度 strides的知识 先构建一个四位数组&#xff1a; arrnp.arange(1,25.0).reshape(2,2,2,3) print(轴(维度):,arr.ndim) arr分析&#xff1a;arange(1,25.0)是1~24共24个数字&#xff0c;注意到25.0是float类型 再来看看…

RuntimeError: sparse tensors do not have strides

这是一个可以复现的问题。 归根结底在于 torch不支持Sparse与Sparse的矩阵乘法(mm)。 也不支持Dense 与 Sparse的矩阵乘法。 只支持Sparse与Dense的矩阵乘法。 torch.mm是消边的矩阵乘法&#xff0c;mm matrix multiply。 而torch.mul是同形矩阵的element-wise点乘。 所谓s…

Warning: Grad strides do not match bucket view strides pytorch利用DDP报错

遇到报错&#xff1a; [W reducer.cpp:362] Warning: Grad strides do not match bucket view strides. This may indicate grad was not created according to the gradient layout contract, or that the param’s strides changed since DDP was constructed. This is not a…

Python ndarray.strides用法

用法 ndarray.strides: 跨越数组各个维度所需要经过的字节数元组 a np.array([[10,2,4],[3, 4,11]],dtypenp.int32) print(a.strides) #(12,4) 12表示在内存中a[n, 0]到a[n1, 0]跨过多少byte; 4表示在内存中a[n, 0]到a[n, 1]跨过多少byte# 查看数组a所有元素占用内存大小&…

神经网络:CNN中的filter,kernel_size,strides,padding对输出形状的影响

输入数据在经过卷积层后&#xff0c;形状一般会发生改变&#xff0c;而形状的变化往往与以下四个超参数有关。 1&#xff0c;filter&#xff08;out_channel&#xff09; 该超参数控制着输入数据经过卷积层中需要与几个卷积核进行运算&#xff0c;而输入数据与每个卷积核进行…