H0e4a0r1t的小屋

逻辑漏洞案例总结

字数统计: 2.6k阅读时长: 8 min
2019/07/12 Share

逻辑漏洞

0x00.之前总结的

1.订单处修改id导致用户信息泄露

问题参数:订单或用户Id没有被加密(抓包修改id查看返回页面是否存在敏感信息,也可以批量爆破)

2.找回密码处任意用户密码重置漏洞(手机号)/任意手机号注册

输入手机号,下一步,抓包,查看返回值中是否存在验证码;或者尝试换手机号得到验证码之后验证是否可行;修改返回包状态码

3.手机号验证处存在短信轰炸

输入手机号,点击发送验证码,抓包,修改其他手机号,如果发送成功,则可批量发送短信

4.邮箱验证处存在邮箱轰炸

输入邮箱号,点击发送验证码,抓包,修改其他邮箱号,如果发送成功,则可批量发送邮件

5.订单支付漏洞

提交订单时,修改订单的数量id,例如将1改为-1,或者找到价格参数进行修改

6.找回密码处任意用户密码重置漏洞(邮箱号)

点击找回密码,发送邮箱验证码,抓包,修改邮箱账号

7.登录处撞库

登录处随便输入用户名,抓包爆破常用用户名,查看存在账号的长度和不存在的账号的长度

8。登录处撞库获取账号及密码

输入弱口令,随便输入用户名,抓包,对用户名进行撞库,匹配成功的即可获得账号密码

0x02.乌云案例总结

PS:此处并无先后顺序,完全凭乌云案例的先后顺序总结😁

1.越权

  1. 漏洞点:发送礼物处,遍历白帽子whitehatid来索要联系方式
  2. 漏洞点:利用支付超时导致上万用户敏感信息泄漏;通过修改orderId=9272363&order_userId=5311555中的orderId及order_userId的值(要同时修改,即同时增1或减1),达到遍历用户敏感信息的操作
  3. 漏洞点:收获地址保存处;修改地址后,点击保存,抓包,修改addressid达到遍历用户地址信息的操作
  4. 漏洞点:登陆后获取用户信息处;抓包,修改userId遍历用户敏感信息
  5. 漏洞点:预约成功后,遍历orderId获得用户信息
  6. 漏洞点:加入车队处可查看车队内部人员信息,遍历车队id
  7. 漏洞点:购物车结算时,抓包,修改userid查看他人地址信息
  8. 漏洞点:套餐修改处,修改uid为他人id即可修改别人的套餐
  9. 漏洞点:查看订单处,修改orderId遍历其他用户信息
  10. 漏洞点:查看个人信息处,遍历userId,或者做删除或添加操作时,遍历userId
  11. 漏洞点:删除操作,遍历id或用户名
  12. 漏洞点:查看报告处,遍历报告id
  13. 漏洞点:注册用户,抓包,修改id为1,即管理员id
  14. 漏洞点:购买你的权限不能购买的东西,查看不能买的id,在购买能购买的东西时修改为不能买的id
  15. 漏洞点:论坛注册可注册admin,间接接管了admin账号

2.重置任意用户密码

  1. 抓包时,会将隐藏4位数的手机号变为直接显示的手机号作为参数(泄露用户手机号),在js代码中发现验证后跳转的页面,直接进行拼接绕过验证修改密码
  2. 在验证手机号或邮箱时,前端显示验证码
  3. 在验证过程中将参数中目标的手机号修改为自己的,就会将验证码发到自己手机上,从而任意修改用户密码
  4. 由于验证码的时效性过长,或者未限制验证次数,所以通过爆破验证码来任意重置用户密码
  5. 先输入目标手机号,点击发送验证码,得到cookie中加密的手机号,再用自己的手机号正常走一遍流程,到最后一步确认修改密码的时候,抓包,将cookie中加密的手机号换为目标手机号。
  6. 修改密码验证邮箱时,抓包,将目标邮箱更换为自己的邮箱,再将收到的验证码进行密码重置
  7. 修改修改密码失败时的返回包中的状态码或数据 staus=1 —— staus=0;success:false ——> success:true
  8. 前边格式正常走,到确认修改密码的时候,将卡号修改为其他用户的
  9. 修改过程中填入用户名,通过修改url里的参数来实现跳步骤绕过验证,如:step=1 ——> step=4
  10. 将设置密码的url中的id修改为其他用户手机号
  11. 情况为:userId=xxx&newpwd=xxxx&renewpwd=xxx,遍历userId批量修改其他用户密码
  12. 正常操作,验证时抓包,将正确的返回包中的数据保存,修改他人账号时,将之前返回包的数据复制过来修改个别参数
  13. 修改自己账号的正常操作,验证完成后跳转到重置密码页面,之后打开第二个页面输入目标的手机号或邮箱账号,不发送验证码,任意输入验证码,抓包,将返回包的状态值修改为验证通过的值
  14. 修改第一次验证身份的返回包数据,并修改第二次保存密码时的返回包的数据
  15. 在修改密码的时候,将请求包中的username修改为其他用户
  16. 前提是修改密码需要验证密保邮箱账号,从返回包中得到敏感信息,从而修改密码
  17. 微信公众号,输入用户名后进入验证页面,查看源代码,将条件改为永真,绕过验证修改密码
  18. 前提是重置密码链接会发到邮箱里,然后通过base64解密发现由时间戳和邮箱组成,所以可以修改其他用户的账号,然后生成时间戳并爆破
  19. 重置密码请求发到邮箱后,将url中邮箱地址替换成其他用户邮箱修改

3.支付逻辑

  1. 选择两件物品放入购物车,结算时修改num=1,1为1,-1使得两件物品价格相减
  2. 点击支付,抓包,将参数中的价格参数修改为0.1
  3. 点击支付,抓包,将参数中的价格参数修改为负数,会给自己账户返钱
  4. 修改返回包中的价格参数,放包
  5. 修改支付失败时返回包中的参数
  6. 加入购物车后,修改数量,减为-1,即0元购物
  7. 先充值100,到银行充值页面后,直接关闭页面再回来,点充值成功,在充值页面点击继续支付,将重置金额修改为0.1,点击支付
  8. 购物车选择两件物品,一件物品数量修改为-1,结算时价格只算了那个未修改的,而修改为-1的也被结算,但价格不需要支付
  9. 选择支付方式时,修改参数中价格的值为0.1
  10. 复制支付成功的链接,将未支付的订单号复制在链接后面,直接访问
  11. 通过修改订单页面中不可修改的订单价格,即F12修改其属性即价格value(仅根据前端价格判断)
  12. 修改运费价格,可减少或修改为负数
  13. 修改其使用时间为-1年,金额也会为-100000
  14. 修改前端value的值为负数
  15. 将前台的加密数据解密并修改对应的参数值,例如阿里云服务器可将5M的更换为200M并以5M的价钱买下

4.撞库

利用弱口令去爆破手机号或用户名,或爆破弱口令

5.任意用户登录

  1. 修改返回包中字典的参数
  2. 修改返回包中的参数 例:staus=1 ——> staus=0
  3. 爆破验证码
  4. 通过文件共享看到每个用户的凭证id,发现cookie也是id

6.恶意刷钱

凭订单号抽取奖金,通过订单号orderId遍历,获取到很多订单号,通过遍历的方式去刷取奖金

凭手机验证领取保险,因为手机验证码前台显示,所以可用其他人的手机号无限给自己上保险

通过修改参数中的手机号格式,来刷取优惠卷,如:原:1381234;可改为:861381234;+861381234;1381234!;1381234asdasd;或”1381234,1391111”;”1381234;139**1111”

兑换现金红包时,修改url里的金额参数及数量参数

可结合任意注册来刷取邀请所得奖金

积分购物,将数量调至负数

7.短信轰炸

发送验证码时,抓包,短时间内无限放包

8.任意注册

爆破验证码

修改返回包状态码

还可以通过修改返回包状态码来恶意注册已经注册过的账号

注册时,输入收到的验证码,然后点击提交时,将电话号码修改为其他的

0x03.楼兰博客案例总结

  1. 重置密码请求发到邮箱后,将url中的随机值置空,并修改uid的值(修改并执行成功的前提是未发起申请)
  2. csrf+信息泄露:csrf绑定邮箱,信息泄露增加链接可信度
  3. session覆盖:修改自己账号的正常操作,验证完成后跳转到重置密码页面,之后打开第二个页面输入目标的手机号或邮箱账号,不发送验证码,任意输入验证码,抓包,将返回包的状态值修改为验证通过的值
  4. 前面步骤正常走,到确认重置密码的地方,点击确认,抓包,将id修改为目标id
  5. 跳过验证身份的步骤,直接跳到重置密码的步骤上
  6. 重置用户一的密码时,在最后新密码发送至邮箱时,抓包,将id修改为用户二的,用户二重置的新密码就发到了用户
CATALOG
  1. 1. 逻辑漏洞
    1. 1.1. 0x00.之前总结的
    2. 1.2. 1.订单处修改id导致用户信息泄露
    3. 1.3. 2.找回密码处任意用户密码重置漏洞(手机号)/任意手机号注册
    4. 1.4. 3.手机号验证处存在短信轰炸
    5. 1.5. 4.邮箱验证处存在邮箱轰炸
    6. 1.6. 5.订单支付漏洞
    7. 1.7. 6.找回密码处任意用户密码重置漏洞(邮箱号)
    8. 1.8. 7.登录处撞库
    9. 1.9. 8。登录处撞库获取账号及密码
    10. 1.10. 0x02.乌云案例总结
      1. 1.10.1. PS:此处并无先后顺序,完全凭乌云案例的先后顺序总结😁
      2. 1.10.2. 1.越权
      3. 1.10.3. 2.重置任意用户密码
      4. 1.10.4. 3.支付逻辑
      5. 1.10.5. 4.撞库
      6. 1.10.6. 5.任意用户登录
      7. 1.10.7. 6.恶意刷钱
      8. 1.10.8. 7.短信轰炸
      9. 1.10.9. 8.任意注册
    11. 1.11. 0x03.楼兰博客案例总结