常见的安全测试类型


登录失败提示信息

需要模糊提示,如“用户名或密码错误”,不能精确提示

登录失败次数限制或验证码刷新

登录失败后需要自动刷新验证码;达到一定失败次数后需要限制登录

登入登出前后,session值需要发生变化

Chrome如何查看sessionID:高级设置–内容设置–Cookie

目录遍历

  • 只输入系统IP,在后面添加…/…/,查看是否能回到上级目录
  • 网址后面加上./WEB-INF/web.xml,检查是否能访问

不安全的HTTP方法

登录时拦截请求,修改POST请求为OPTIONS请求,释放请求,查看返回的headers信息中是否包含不安全的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY)

存储型XSS漏洞

在输入框中输入 '/><script>alert(aaa)</script> 并提交,查看页面是否存在弹出框

垂直越权

低权限用户直接访问高权限用户才有的链接或请求,如能正常访问且可提交请求,则存在该漏洞

水平越权

水平越权是指能通过拦截并修改请求去获取或操作其它用户的信息。

页面级隐藏功能

对于页面按钮或信息等去掉 disabled 属性,如能正常提交信息,则存在漏洞

安全测试工具


burpsuite

安全测试基础

代理配置

1)打开浏览器,手动配置代理并启用,与 burpsuite 中的 IP 一致,这里以搜狗浏览器为例
安全测试基础
安全测试基础
安全测试基础

2)配置完成后,进入Proxy模块,开启拦截
安全测试基础
"Intercept is on"表示开启拦截,"Intercept is off"表示关闭

3)打开页面,查看是否拦截请求。在搜狗浏览器中输入网址,点击跳转,可以看到请求被拦截
安全测试基础

数据抓取

拦截请求后,我们需要的主要是请求地址和Cookie中的参数。因为请求已经被拦截,所以网页不会打开,如果需要继续请求,点击“Forward”进行释放,如果要丢弃这个请求,则点击“Drop”。

Action

Action可以把请求发送到各个模块进行交互

  • Send to Intruder

用于**,将请求发送到Intruder中
在Positions中设置要替换的参数(加上$符号),Payloads中粘贴用于替换的数据,Options中可设置线程数

  • Send to Repeater

用于实时查看请求响应结果,可实时修改请求并查看返回,不会在页面上真实请求

实例

例1

用户 a,b 分别为某公司A,B两个部门的秘书,均只可查看自己部门下的员工信息,a在查询员工信息时,通过 burpsuite 拦截请求,发现该请求为 get 请求,且该请求中带有员工 id,于是 a 将请求中的 id 改为 B 部门某员工的id,释放请求,发现可以查看该员工信息,此时即发生了水平越权

例2

用户 a,b 分别为某公司A,B两个部门的秘书,a 具有修改部门信息的权限而 b 不具有,分别用不同的浏览器登录a,b账号,a 账号进入修改部门信息页面,发现该url地址为 http://…/company/department/modify.html ,b 账号登录后的url地址为 http://…/company.html,将a账号的url复制,粘贴到 b 的地址中,发现 b 可以正常跳转到修改部门信息的页面,此时发生水平越权。

相关文章: