本期内容
1.了解什么是安全测试
2.哪一些是安全问题
3.测试的用例(持续跟新)
前言
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。它一般是在产品开发基本完成到发布阶段才会去做的一件事情,这是一个普遍现象,但其实安全应该提前到更早,在设计阶段就应该把安全考虑进去,在设计的时候就验证产品的安全等级是什么样子,在最终实现的过程中再去一步步检验安全是不是达到了设计的标准。
正在努力
一.安全测试
安全测试的目的是:
提升IT产品的安全质量;
尽量在发布前找到安全问题予以修补降低成本 ;
度量安全。
验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。
安全测试的常用方法有以下几种:
(1)静态代码检查
静态代码检查主要是通过代码走读的方式对源代码的安全性进行测试,常用的代码检查方法有数据流、控制流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。静态代码检查方法主要是在编码阶段进行测试,尽可能早地发现安全性问题。
(2)动态渗透测试
动态渗透测试法主要是借助工具或手工来模拟黑客的输入,对应用程序进行安全性测试,进而发现系统中的安全性问题。动态渗透测试一般在系统测试阶段进行,但覆盖率较低,因为在测试过程中很难覆盖到所有的可能性,只能是尽量提供更多的测试数据来达到较高的覆盖率。
(3)扫描程序中的数据
系统的安全性强调,在程序运行过程中数据必须是安全的,不能遭到破坏,否则会导致缓冲区溢出的攻击。数据扫描主要是对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞,这也是静态代码检查和动态渗透测试很难测试到的。
从用户认证、网络、数据库和Web 四个角度进行安全性测试,需要注意以下几个方面:
(1)用户认证安全性测试
- 系统中不同用户权限设置;
- 系统中用户是否出现冲突;
- 系统不应该因用户权限改变而造成混乱;
- 系统用户密码是否加密、是否可复制;
- 是否可以通过绝对途径登录系统;
- 用户退出后是否删除其登录时的相关信息;
- 是否可以使用退出键而不通过输入口令进入系统。
(2)网络安全性测试
- 防护措施是否正确装配完成,系统补丁是否正确;
- 非授权攻击,检查防护策略的正确性;
- 采用网络漏洞工具检查系统相关漏洞(常用的两款工具为NBSI 和IPhackerIP);
- 采集木马工具,检查木马情况;
- 采用各种防外挂工具检查程序外挂漏洞。
(3)数据库安全性测试
- 数据库是否具备备份和恢复的功能;
- 是否对数据进行加密;
- 是否有安全日志文件;
- 无关IP 禁止访问;
- 用户密码使用强口令;
- 不同用户赋予不同权限;
- 是否使用视图和存储过程;
(4)Web 安全性测试
- 部署与基础结构;
- 输入验证;
- 身份验证;
- 授权;
- 配置管理;
- 敏感数据;
- 会话管理;
- 加密;
- 参数操作;
- 异常管理;
- 审核和日志记录;
二.安全性的问题 直接上图
三测试用例
跨站脚本
❖ cross-site scripting
1.首先打开测试网站
这里我选择的是链接: juice shop
因为是内部搭建的网站 可能会换端口 建议大家用docker自行搭建
2.用例
1.打开网站 在搜索框中输入以下代码 如果有弹出框就是有漏洞的存在
第一个是XSS攻击
<iframe src="javascript:alert(`xss`)">
第二个是使用音乐软件的外部播放 进行攻击
随便搜索一个播放器 博主选择的网易云
进入网易云 搜索音乐 点击生成外部链接
点进去之后 下面会出现代码 复制下来 放到 咱们的搜索框里 回车执行
2.获取 我的订单 显示订单跟踪订单看到交付状态 尝试用xss攻击
1.用管理员登录
管理员登录 可以使用sql注入的方式
用户名 ‘ or 0=0 –
密码随意
2.添加商品到购物车 并结算
点击商品添加到购物并点击结算车 这里就不截图啦
3.查看订单
点击账户 选择订单和付款方式 然后点击查看历史订单 再点击后面的小车
用postman获取查看订单的网页
如果有不会postman的博主有详细教程链接: postman
把get换成post
再在body里 id填入<iframe src="javascript:alert(%60我的棒棒糖%60)">
进行攻击
()这个里面随意填写
如果获取到的网页没有body体就 再原页面 F12 复制body到postman里
然后点击send执行就可以了
3.找到商品 并且修改商品名称
1.老样子 再添加购物车的时候用postman 获取网页
get改成post body体里 填入
{
"name":"xss",
"description":"<iframe src=\"javascript:alert(`xss`)\">",
"price":1.99
}
名字随意
上方的url清楚到博主的位置 点击执行 就可以看到 你原来商品以及被改啦
4.修改用户注册是邮箱
1.在注册的时候进行postman抓包 把获取到的网页里的body
里面的邮箱换成<iframe src="javascript:alert(名字随意)">
然后在测试页面url
后 输入administration 进入管理员管理 记住 要进入此页面 先用管理员登陆
进去之后 找到你修改的用户 就可以看到啦
5.修改用户投诉的内容
经过4的修改 5也是非常简单的
在左边下拉栏里的反馈 我们先输入内容进行反馈抓包
在 body里的 name后 修改为<iframe src=“javascript:alert(内容随意)”> 点击send提交 注意现在所做的全是post请求 再打开右边的关于我们 往后翻 就能看到 我们修改的投诉
这里博主就不截图了(其实是懒!)
6.攻击账户
同样也是抓包 修改body name改成
<<script>Foo</script>iframe src="javascript:alert(`xss`)">
点击send提交
再进入管理员页面 就会弹出 你修改的内容
7、送货 —高级成员
修改图片
1. 使用任何用户登录并转到高级会员
博主使用的sql注入方式登陆的
’ or 0=0 –
2. 右键单击并检查带有 Juice Shop 徽标的送货箱的图像。五个 assets/public/images/JuiceShop_Logo.png以不同的大小和位置加载到 SVG 图形上。
- main.js在浏览器中打开DevTools 并搜索与该页面和 SVG 图像相关的相应 Angular 控制器代码 搜索assets/public/images/JuiceShop_Logo.png
-
前后找到application.logogetApplicationConfiguration(),testDecal!开发人员似乎使用它来测试 SVG 上的叠加图像,但在上线之前忘记将其删除!啊!
-
尝试该testDecal参数,例如通过访问 http://localhost:3000/#/deluxe-membership?testDecal=test。您会注意到盒子上的徽标现在已经消失或显示损坏的图像符号。
替换图片链接
?testDecal=…/…/…/…/redirect?to=https://placekitten.com/g/400/500?x=https://github.com/bkimminich/juice-shop
to=是你的图片链接
8.强制重定向到你不应该重定向到的页面
1. 从导航栏中的GitHub按钮中选择应用程序中的一个重定向链接,例如 http://114.116.97.187:8001/redirect?to=https://github.com/bkimminich/juice-shop
2. http://114.116.97.187:8001/redirect?to=https://cn.bing.com 报406 Error: Unrecognized target URL for redirect.
3. http://114.116.97.187:8001/redirect/ 报500 TypeError: Cannot read property of undefined (reading ‘includes’) 白名单(isRedirectAllowed)
4. 制作一个重定向 URL,以便目标 URLto带有一个包含来自允许列表的 URL 的自己的参数,例如http://114.116.97.187:8002/redirect?to=http://kimminich.de?pwned=https://github.com/bkimminich/juice-shop
5. https://bkimminich.github.io/?pwned=https://github.com/bkimminich/juice-shop
你们自己写 一个从juiceshop网站跳转到bing,taobao的
http://114.116.97.187:8002/redirect?to=https://uland.taobao.com/sem/tbsearch?refpid=https://github.com/bkimminich/juice-shop
修改他跳转的网页 也就是白名单
http://114.116.97.187:8002/redirect?to=https://search.bilibili.com/all?keyword=https://github.com/bkimminich/juice-shop
最后结果