实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

  • A+
所属分类:安全文章

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

文章说明:

文章为山丘安全攻防实验室成员:O8原创

文章仅用于攻防技术学习,请勿用于非法用途

文章在漏洞修复后进行撰写发布

 

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

 

 

1

前言

写这篇文章,一方面是“实战某医院水平越权操作任意账号”,另一方面“揭秘黄牛怎么把你的预定变成了别人的预定”。

其实平时漏洞挖掘中,web端的漏洞挖掘可能比较困难,但是换个思路。

转移到微信公众号或者是APP总会有出其不意的效果。

故事的起因是女朋友最近胃不舒服,想去旁边的XXX医院去看看中医调养一下。

后来,远在异地的我微信收到了女朋友的预约成功链接,手动测试发现了有点问题。

2

测试

注:文章中的真实名称用某医院代替

首先,任意订单获取

打开长这样子

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

 

 

我先描述一下URL获取方式,微信分享的订单是直接看不到URL

但是点击复制链接就可以获取到对应的URL

我将URL发送给自己的文件助手,看到如下URL

 

https://open.weixin.qq.com/****/****/****?appid=xxxx&redirect_uri=http://www.xxxx.com/xxxx/order***?id=123456&state=1223#wechat_redirect

尝试ID遍历

Id已经做了特殊处理,是纯数字,且依次叠加。

尝试进行+1

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

继续+1、一直到EMMMM

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

肉眼看到还是被加密了重要信息,上BURP抓着看看能不能绕过

绕过微信开放平台实现任意订单ID遍历、未加密身份证号、姓名等敏感信息泄露

直接访问

http://www.xxxx.com/xxxx/orderInfo?id=123456&state=123#wechat_redirect

抓包

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

发现访问了一个地址+id

分析了这个请求的多次请求,其中一个请求最为关键,可直接任意ID获取未加密信息

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

由图可见直接遍历这个接口就可以轻松获得未加密用户姓名、账号、订单号、性别、身份证信息、挂号信息。

进一步测试,任意订单取消

这个其实就是印证我们标题,比信息泄露严重的多。

我们在医院周围住着,要么提前预约,要么就去现场排队。

医院真是不缺病人,想想黄牛利用这个技术把你订单取消了,然后让他的病人进来……

进一步验证,水平越权订单取消。

怕影响到别人,特意用自己的微信号挂了下周的一个医生

继续访问

https://open.weixin.qq.com/****/****/****?appid=xxxx&redirect_uri=http://www.xxxx.com/xxxx/order***?id=123456&state=1223#wechat_redirect

 

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

看到了取消按钮,尝试按一下,看看到底能不能取消

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

emmm看来要登陆。登陆女朋的账号

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

 

 

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

尝试一下

跳转到了中医

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

登陆我自己的账号再次查看此信息

实战|你的个人信息在这一分不值之某医院水平越权操作任意账号

测试结束

 

总结:

1、未登录任意ID遍历(身份号、姓名、性别、看啥医生、啥时候去看……等)。

2、登陆后越权任意用户预约取消(这也算我们这边比较好的医院~俺们排队一早上~黄牛~~难受~这里面也有我的信息)。

3、 希望医院便民的同时也能重视信息安全问题。

 

修复方法:

  • 验证一切来自客户端的参数,重点是和权限相关的参数,比如用户ID或者角色权限ID等。
  • session ID 和认证的token做绑定,放在服务器的会话里,不发送给客户端。
  • 对于用户登录后涉及用户唯一信息的请求,每次都要验证检查所有权,敏感信息页面加随机数的参数,防止浏览器缓存内容。
  • 把程序分成匿名,授权和管理的区域,通过将角色和数据功能匹配。
  • 不适用参数来区分管理员和普通用户。

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: