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