不定时更新中···
一般做渗透测试,首先会先使用工具进行一次扫描,开发修复后,再进行一次回归;但是只会用工具是不够的,我们需要知道如何复现。
一、SQL注入
通过注入点进行一系列判断,很容易能够拿到表中的数据
二、XSS漏洞
1、反射型
- get型,主要是在一些含搜索框的地方,在url的某个参数中使用
<script>alert('弹窗信息')</script>
,尝试浏览器是否会执行这个脚本
http://ip:port/vulnerabilities/xss_r/?name=<script>alert('1111')</script>
- post型:暂时没有想到验证方式,网上看到说使用
<script>alert(document.cookie)</script>
,弹窗能展示用户的信息就是属于post型 传送门
2、存储型
在存储的地方(如评论区)输入恶意代码,其他人在页面上浏览时应不被触发
http://ip:port/vulnerabilities/xss_r/?name=<script>alert('1111')</script>
3、DOM型
在含有选项的地方赋值恶意代码,脚本应该不被插入代码中,DOM主要影响自己本地 传送门
三、越权访问
1、操作权限
一套系统的后台接口
- 仅有该系统的租户可运行所有接口
- 同一套系统的其他租户或其他系统下的租户,运行接口,均无权限
一套系统的前台接口
- 仅有该系统的租户或该系统下有操作权限的用户可运行接口
- 同一套系统的其他租户或其他系统下的租户或该系统下没有权限的用户,运行接口,均无权限
2、组织机构权限
使用两个用户验证,AB两个用户拥有所有权限,B为A的下级;录制两个用户所有的可操作的接口后,互换token验证
- A可操作B的所有接口,B操作A的接口均无权限
使用两个用户验证,AB两个用户拥有所有权限,AB在平行的机构下,无交集;录制两个用户所有的可操作的接口后,互换token验证
- AB操作对方的接口,均无权限
登录,注销,修改密码
以多租户系统举例,如果:
1、 某个租户系统的用户已登录,此时删除/禁用该系统
- 该租户系统的登录页面刷新后,页面应该退出至登录页面,提示系统已被删除,缓存中的token及token和refresh-token应被清除
- 使用原有用户再次登录,应有系统无法使用等相应提示
- 使用工具调用接口,原先的token和refresh-token应无法使用
2、用户注销
- 用户注销后,缓存中的token及token和refresh-token应被清除
- 使用工具调用接口,原先的token和refresh-token应无法使用
- 用户重新登陆后,缓存中生成一套新的token和refresh-token
3、某个用户已登录,在后台删除该用户
- 该用户的登录页面刷新后,页面应该退出至登录页面,提示已被删除,缓存中的token及token和refresh-token应被清除
- 使用工具调用接口,原先的token和refresh-token应无法使用
- 再次登录,应有已被删除等相应提示
4、某个用户已登录,在后台强制下线该用户
- 该用户的登录页面刷新后,页面应该退出至登录页面,提示已被下线,缓存中的token及token和refresh-token应被清除
- 使用工具调用接口,原先的token和refresh-token应无法使用
5、某个用户已登录,在后台被重置密码/自行修改了密码
- 该用户的登录页面刷新后,页面应该退出至登录页面,提示密码已修改,缓存中的token及token和refresh-token应被清除
6、修改初始密码时(指登录时)
- 重复调用修改初始密码接口,仍然将密码设置为初始密码,应有无法设置为初始密码等提示;
7、某个用户已登录,在系统自行修改了密码
- 重复调用修改密码接口,设置为初始密码,应有无法设置为初始密码等提示;
8、系统登录、修改密码,密码使用加密算法
- 查看前端传的密码和数据库中加密后的字符串,两者应不同,且每次前端传的都不同,前后端都做加密