文章插图
随着互联网的飞速发展,web应用在软件开发中所扮演的角色变得越来越重要,同时,web应用遭受着格外多的安全攻击,其原因在于,现在的网站以及在网站上运行的应用在某种意义上来说,它是所有公司或者组织的虚拟正门,所以比较容易遭受到攻击,存在安全隐患 。
今天主要给大家分享下有关安全测试的一些知识点以及注意事项 。
一、安全测试的验证点一个系统的安全验证点包括上传功能、注册功能/登陆功能、验证码功能、密码、敏感信息泄露、越权测试、错误信息、session等 。
1、上传功能
- 上传中断,程序是否有判断上传是否成功
- 上传与服务器端语言(jsp/asp/php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行
- 请求是否安全传输
- 重复注册/登陆
- 关键cookie是否httponly
- 会话固定:利用session的不变机制,获取他人认证和授权,然后冒充
- 短信轰炸
- 验证码一次性
- 通过手机号/邮箱找回
- 程序设计不合理,导致可以绕过短信验证码,从而进行修改(使用burpsuite抓包,修改响应值true)
- 数据库/日志/提示
- 不登陆系统,直接输入下载文件的URL是否可以下载/直接输入登录后页面的URL是否可以访问
- 手动更改URL中的参数值能否访问没有权限访问的页面
- 不同用户之间session共享,可以非法操做对方的数据
- 错误信息中释放含有sql语句,错误信息以及web服务器的绝对路径
- 退出登陆后,点击后退按钮是否能访问之前的页面
- 部署与基础结构
- 输入验证
- 身份验证
- 授权
- 配置管理
- 敏感数据
- 会话管理
- 加密
- 参数操作
- 异常管理
- 审核和日志安全,
在系统的初期,一般比较容易发现的问题就是在进行一些错误或者反向测试时,在页面的提示中会出现带有明显的数据库的表或者字段的打印,或者会出现一些敏感词,日志里面类似密码,卡号,身份证号没有相应的明密文转换,而这些敏感词/明密文不互转的存在,就会导致攻击者能够获取到,从而进行简单粗暴的攻击,轻易的攻击服务器或者数据库,这就会危害到整个系统!
2、重复性
大部分的web网站都会有注册功能,而类似我们负责支付这块也都会有开户,就注册跟开户,基本上需求上都会有唯一性的校验,在前端就会进行拦截,但如果使用jmter进行参数以及参数值的新增,有可能新增成功,就会导致页面系统里面会出现相同数据,可能导致整个功能的出错 。
3、次数限制
类似发单,登录或者短信,如果没有进行相应的限制,如短信,没有进行限制次数,攻击者就会通过短信轰炸,攻击系统,导致系统瘫痪,其他客户就会使用不了该系统 。
4、越权测试
(基本上大部分系统都没有明确的写出越权方面的需求)一个web系统,一般地址栏都会有参数的带入,如:用户号,订单号或者是其他的一些参数,而在这个基础上一个系统都会有很多用户,或者很多等级,如:A大于B大于C,那我使用C用户进行登录,查看C用户所属的订单,在地址栏中会有订单号的参数带入,如果系统没有进行相应的限制,此时C用户就可以修改订单号从而可以看到B乃至A用户的数据,这就可能导致数据的泄露,再者,如果可以修改用户的用户号,没有做处理,这样就可以对所有数据进行操作,整个系统就乱了,影响很大 。
5、SQL注入/XSS攻击
主要是输入框的校验/拦截以及是否转义,如果没有系统没有对输入的内容进行处理,那攻击者就可以输入一段SQL语句,或者一段代码,在后台进入到相应的功能,就会导致整个功能是错乱的,其他正常用户所提交的数据也查看操作不了,或者提交的代码是死循环(">),就会关闭不掉,所以这点是非常重要的 。
基本上上述的五点都是在测试中,系统真实存在,发生的问题,还有其他问题就不一一例举了,其中越权跟SQL注入以及XSS攻击都是重中之重!
推荐阅读
- 桌面加热垫安全吗 桌面加热垫会烧起来吗
- 求职|【测试岗】金三银四上百家公司面试题,看看有没有你要应聘的公司
- 安全期避孕为何不安全?
- 主机开机没反应我们首先检测电源 电脑电源测试
- ?早早孕试纸假阳性怎么回事
- 茶园农药合理安全使用有哪些介绍
- 4步完善你的华为帐号安全信息
- 怎么样补单比较安全 怎么补单才会更安全?
- web前端开发需要掌握什么方法与技巧?
- web防止表单多次提交的方法