0x00:前言
上周做渗透,有一个 sql 注入,负责安全审核的人给开发说你们的程序既然还有 sql 注入,我一年也看不见几个。这句话让我又再次深刻的认识到,渗透测试常规的一些注入跨站漏洞不如以前那么盛了,有点经验的开发写东西都会去考虑到了,再加上修复方法也在逐渐的完善,逻辑类的东西也应该并重的去测。
0x01:分类
我把逻辑类的问题大概总结了一下,大概可以分为十个模块,分别是登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入 / 输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口调用模块测试。
这次记录的是第三个模块业务授权访问模块。
0x02:业务授权访问模块测试
1,未授权访问
测试方法:访问一个地址,且这个地址是需要认证身份后才可以访问的,随后把这个地址复制到其他浏览器,若能成功访问,则存在此问题。
经验之谈:这个未授权访问常见的地方是一些下载或导出表等功能,测试的时候可以不用复制地址到其他浏览器,之所以复制到其他浏览器其目的在于怕同一个浏览器有缓存而导致测试不准确,如果电脑只有一个浏览器,这时候可以打开隐私浏览记录,测试效果是一样的。
那不常见的地址在哪,在说不常见的地方时,再说一下未授权访问的测试方法,除了复制 url 外,很多人也会发送到 repeater 然后删除 cookie 的值去 go,以此来判断是否具有未授权访问这个问题。
不常用的地方理由后台有一个对信息增加或删除的功能,这时候基本考虑到的是 sql 注入、xss,csrf 等常见的问题然后去测,其实也会存在未授权的问题,很多时候,类似这样的功能发送到 repeater 后,删除 cookie 然后 go 一下,你会发现服务器返回的是成功的结果,而且数据确实已经被删除或者增加了,但有一个问题,你把这个 url 复制到浏览器时它会自动跳转到登录页面,那这算不算未授权访问?
一般情况下,删除 cookie