漏洞类型
-
支付漏洞:
- 订单相关
- 选择商品时修改商品价格;
- 选择商品时将商品数量设置为负数;
- 商品剩余1时,多人同时购买,是否产生冲突;
- 商品为0时是否还能购买;
- 生成订单时修改订单金额;
- 结算相关
- 优惠打折活动多次重复使用;
- 拦截数据包,修改订单金额;
- 拦截数据包,修改支付方式;
- 伪造虚假订单,刷单;
- 支付相关
- 拦截数据包,伪造第三方确认信息;
- 保存用户付款信息被窃取;
- 退货相关
- 绕过商家确认直接退货;
- 绕过商品类型直接退货;(退货是否允许)
- 收货相关
- 绕过客户确认直接收货;
- 订单相关
-
密码重置漏洞:
手机验证码、邮箱、密保问题、自动生成新密码、密码找回链接发送……- 认证凭证暴力破解
- 认证凭证回显
- 认证凭证重复使用
- 重新绑定
- 用户身份特性认证
- 用户身份特性认证
- 服务器端认证
- 本地认证
- 密码找回流程绕过
-
任意用户登录
- 空密码绕过
- 身份替换
- 认证凭证篡改
-
认证缺陷漏洞
- 弱验证
- 空验证
- 认证凭证有效性&唯一性
-
越权漏洞
- 普通越权
- 未授权访问(登录凭证验证)
- 绕过授权模式(参数构造等)
-
接口枚举
- 业务接口因为没有做验证或者验证机制缺陷,容易遭到枚举攻击
- 撞库
- 订单、优惠券等
漏洞实施
1 注册页面
注册中最常见漏洞的有两个,一个是恶意注册,另一个是账户遍历。
要么使用短信或邮箱进行验证,要么存在难以识别的验证码,使得注册的请求无法批量提交。那么账户遍历是什么意思呢?在注册的时候Web程序往往会有用户名或手机号(或其他什么)检测之类的步骤,以避免相同账号注册两次,比如一般会提示“***用户名已存在!”。我们就可以利用这个步骤去批量尝试一些用户名,如果提示已存在就说明存在这个用户,然后就可以用这个用户名进行下一步操作,比如登录爆破(直接爆破的话可能会提示“用户名或密码错误”,用已知用户名爆破就只需要关心密码问题了)和密码找回
2 登录页面
登录里比较简单的一种的情况就是登录界面不存在验证码可以直接爆破,第二种就是存在验证码但可被绕过,第三种是第三方账户登录可被绕过,
- 短信验证码
这种情况一般指4位数字验证码,且不限制错误次数。
在登陆界面随便填写然后抓包。
再用获得的验证码登录即可。 - 密码找回
密码找回的利用姿势比较多,还是先说验证码的问题。除了上节所说的4位验证码的可爆破的问题,还有验证码泄露、认证绕过、越权等问题。
输入验证码、要找回的账号和手机号,点击“获取验证码”,同时拦截抓包,然后就可以在返回包中看到要认证的验证码,这样不用得到用户的手机,也能得到他的验证码
再输入密码即可找回。 - 验证码的认证绕过
以某网站为例,在密码找回界面,输入用户名和密码,点击获取验证码
验证码随便输,然后点击下一步,拦截返回包,
将status改为0,然后就可以进入密码修改界面
另外也存在替换手机号的情况,及将验证码发送到你替换的手机上,而找回的密码还是原来的账号。
越权
越权一般包括水平越权和垂直越权。
-
水平越权
就是相同级别(权限)的用户或者同一角色不同的用户之间,可以越权访问、修改或者删除的非法操作。如果出现次漏洞,那么将可能会造成大批量数据泄露,严重的甚至会造成用户信息被恶意篡改。以某APP为例,在点击账户信息按钮时会返回当前账户的基本信息,如下是请求的数据包
返回的包为
如果直接修改Id,改为0001001238,那么注意看返回包
这里就是没有任何的身份认证,仅根据Id返回相应的数据,导致可以水平越权,查看他人的账户信息。再看另一个例子,以某网站为例,登录进入个人主页界面 -
垂直越权
垂直越权:是不同级别之间或不同角色之间的越权;垂直越权又别分为向上越权与向下越权。比如,某些网站,像发布文章、删除文章等操作属于管理员该做的事情。假设一个匿名用户也可以做相同的事情,这就叫做向上越权;向下越权是一个高级用户可以访问低级用户信息(这也是不行的,这回暴漏用户的隐私)。以ZDSoft网站生成系统越权漏洞为例,比较老的一个洞,网站后台登录地址一般为:
http://www.***.cn/admin/login.aspx
后台菜单地址为:
http://www.***.cn/admin/left.aspx
如果没有登录直接访问菜单地址js跳转到登录地址,但是禁用了浏览器js后就可以直接访问而不会跳转,比如访问用户管理界面