Web测试基础知识

Web测试针对的是程序,网站上任何一套程序出现漏洞,都会威胁到它的安全。

需要先了解Web的原理才能顺利进行测试。

1. Web常规四元素

  • 系统
  • 源码
  • 中间件
  • 数据库

源码分为三类开源、闭源(商用)、自写

其中开源分两种:源码可见、源码不可见

源码不可见

  • 加密:不会影响本身功能,会变成乱码形式
  • 语言特性:java等运行之后变成乱码

测试思路

可以使用工具进行反编译、有反编译的工具试。

白盒测试—代码审计

根据用途,可以思考一下,这个网站的源码可以拿到手嘛

权限设置

锁目录,拒绝访问等,比如Windows身份验证开启401,访问这个目录后,就会弹出账号密码身份验证

测试思路

这种的无法绕过,没有办法解决

3389过去,手动关闭

MIME类型

在里面可以设置各种文件类型,图片、视频、文档、压缩包等等,这样就导致访问zip可以直接下载,访问pdf可以直接显示等等

路由访问

正常情况是URL和文件目录对应上可以直接访问

但是设置了路由访问会导致有些文件在目录下面,但是访问不到,需要弄特有的路由规则才能访问

传统数据库是自己下载源码,然后安装在本地的

站库分离

站库分离分为两类

  • 网站源码和数据库不在一起,建在不同的服务器
  • 使用云数据服务RDS

云数据库 RDS

可以买个数据库,这个数据库是放在云上面

登录方式:安全组,限制IP连接,网站连接,不再使用账号密码连接

数据库特性

外联特性、绑定特性等等,就算拿到了密码也不一定连接成功

站库分离测试影响

数据被单独存放,能连接才可影响数据,可能会拿到权限,但是很小,威胁不到数据

2.Web搭建

子域名模式、端口模式、目录模式

此类网站测试思路就是常规Web渗透测试即可

域名可以划分为各个子域,子域还可以继续划分,每一个子域上都可以搭建不同的程序

例:www.qwer.com zblog asp程序
www.qwer.com wordpressphp程序

有些网站管理员会在解析设置里面指定端口(不指定的情况下默认80)

例:www.qwer.com
www.qwer.com:8080

有些网站他两个域名一样,但是访问不同的端口,所呈现的程序不一样,可以理解为两个攻击目标,达到攻击面扩展的效果

把新的源码放在新建的目录下面,再去访问这个目录,又是一套新的程序。
比如有很多敏感文件泄露,就是访问不同的目录探查到的

是一个大域名分配给用户的,利用它的域名给我们部署

1. 托管模式(政教之类):交给别人,由团队专门定制的。所有版权都在自己

2. 申请模式(博客园、凡科):利用别人域名、模板建立

测试影响

像博客园用户可以申请自己的博客、凡科、网校系统这种的,网站域名、源码、服务器、啥都不在自己手里,没有测试的必要

如果分配站是我们的测试目标,那我们面对的就是整个大域名的网站,攻击者随便打,打的就是平台,和用户一毛钱关系都没有

这种站的安全系数基本就很好

宝塔、Phpstudy等软件搭建的,环境都集成在一个软件环境上
像那种大公司,政府之类的网站,都有自己的机房,专人管理,服务器啥的,都是自己在管理,可控制的

测试影响

拿到的权限不一样

Phpstudy就会继承安装者的权限

不同方法环境搭建出来的,权限不一样

拉取的镜像,是虚拟化技术独立磁盘空间,并非真实物理环境

测试影响

Docker搭建的网站,攻击者只能攻击到虚拟空间磁盘,就是在人家虚拟空间里玩耍

拿到的权限不是真的,是虚拟空间的权限

你逃不出来,就只能在虚拟空间里玩耍了

这里就会涉及到Docker逃逸的技术了,就是从虚拟空间里逃逸出去

前端JS框架,使用API传输数据

一个负责显示,一个负责处理

  • 访问速度快,美观,安全
  • 数据通过API传输,很多细节,比如兼容,数据量等等,API安全问题

和站库分离的区别

  • 站库是源码和数据库分离
  • 前后端分离是:前解密使用JS框架开发(比如VUE等,非常美观,简洁),后台管理;前端的信息是通过API传输
  • 前端是一个网站,后端又是一个网站(中间通过API连接)
  • 前端只负责显示内容,没有啥重要的数据,显示内容全是JS写的,后台的设置才会影响到前端

还存在一后端多前端通用的情况,前端通过API连接后端

测试影响

前端页面大部分不存在漏洞

后端管理大部分不在同域名

获得权限有可能不影响后端

语言特性决定安全问题少

能出漏洞的地方在后台,需要先找后台才能测试

3. Web分类

例子:大学学的html设计的网站,非常单一,没有交互

也能用JS,比如有些游戏网站就是纯静态,单页面啥也没有,只有下载游戏什么的

修改数据需要在代码里面修改,不能在后台直接修改,数据不能传输,没有交互。

测试影响

数据没有传输性(JS传输不算)

无漏洞

动态转为静态的技术,伪装的静态

网站添加文章的时候,有一个功能,就是转静态,或者安装一些插件

就是普通常规网站了

4. Web架构

网站中可能出现的五种情况

  • CDN
  • WAF
  • OSS
  • 反向代理
  • 负载均衡

加速,CDN节点,内容分发服务,旨在提高访问速度

测试影响

真实IP被隐藏

Web应用防火墙,类似网站的杀毒软件

WAF版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vwqC0OST-1678255053654)(zyplayer-doc-wiki/common/file?uuid=bac76927f39348089f53ff3fedbd1301)]

测试影响

常规Web安全测试手段会受到拦截

WAF大部分绕过不了,分产品,有的可以,有的很难

很多都是没有作用的绕过,意义不大

云存储服务,旨在提高访问速度,提高存储空间

只是用来存储,没有解析功能

修复上传安全问题

测试影响

上传到OSS,无法解析

但Accesskey存在安全隐患—–阿里云资源访问的密钥

正向代理:为客户端服务,自己主动去找别人(不走代理,无法访问)—–在客户端操作

正反代理都是解决访问不可达的问题,但是反向代理多出一个重定向解析功能,导致反向代理出的站点指向和真实应用毫无关系

重定向解析

就是可以将真实网站地址,指向任何地方

测试影响

访问目标只是一个代理,并非真实应用服务器

分摊到多个操作单元上进行操作,共同完成工作任务

测试影响

有多个服务器家在服务,测试过程中存在的多个目标的情况

一个网站有多台服务器,哪个都和网站有关

这里面有一个权重概念,就是可以设置谁的出现频率

upstream fzjh{ server 47.98.236.123:80 weight=2; (权重) server 47.23.29.33:80 weight=1; }
upstream fzjh{ server 47.98.236.123:80 weight=2; (权重) server 47.23.29.33:80 weight=1; } 
upstream fzjh{ server 47.98.236.123:80 weight=2; (权重) server 47.23.29.33:80 weight=1; }

访问路径策略

location/ { proxy_pass http://fzi/; }
location/ { proxy_pass http://fzi/; } 
location/ { proxy_pass http://fzi/; }

原文链接:https://blog.csdn.net/jinsetianjixians/article/details/129402208

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享