0x01 过程

通过PN532上位机读取数据,读出12-14扇区数据

(以下数据经过修改,过机消费验证,厂家敏感信息用XX打码)

12 扇区
0区块:3427001137270011001021310082BF81
1区块:EABBEABBEABB0000000000000000EF51
2区块:0124082088888800132284440000E274
3区块:1380XX76XX0DFF0780694346A053464A

13 扇区
0区块:00000000000000000000000000000000
1区块:66660000CC00BE05020209000014007C
2区块:66660000CC00BE05020209000014007C
3区块:B40DF82BC32DFF0780694346A053464A

14 扇区
0区块:00000000000000000000000000000000
1区块:00000000000000000000000000000000
2区块:001000BE2D000400BD2C000400BC33DB
3区块:0755XXXX0268FF0780694346A053464A
不断读出每次刷卡的数据

可用控制变量法,例如固定的刷卡机,金额等

然后就是头脑风暴,连蒙带猜去验证。

0x02 数据分析

12扇区

0区块:3427001137270011001021310082BF81
1区块:EABBEABBEABB0000000000000000EF51
0区块:1021310082 是学号
1区块:EABBEABBEABB 是姓名 GBK内码转换为:昊昊昊
检验位

不难发现,基本每区块的最后四位是检验位

网上教程的检验位运算无非就这几种:相加、取反、异或

于是进行尝试,发现是累加和、异或和检验位

 BF  是前面所有数据十六进制下相加的和(累加和)    

BF = 34+27+00+11+37+27+00+11+00+10+21+31+00+82
81 是前面所有数据相异或的和(异或和)

81 = 34xor27xor00xor11xor37xor27xor00xor11xor00xor10xor21xor31xor00xor82
13 扇区

1区块:66660000CC00BE05020209000014007C
2区块:66660000CC00BE05020209000014007C
6666 十进制储存的金额:66.66元
CC00 金额检验位 CC = 66 + 66; 00 = 66 xor 66
BE 流水号,对应14扇区流水,满清
0502 消费日期 5月2日
0209 经过大数据分析,应该是刷卡机序列号
14 当天消费总额
7C 累加和检验位
14扇区是 流水记录

2区块:001000BE2D000400BD2C000400BC33DB
第BE次消费10元对应刷卡机2D
0x03 一卡一密分析

卡号存放在0扇区0区块前8位

如0区块:25F2AF275F0804006263646566676869
卡号是:25 F2 AF 27
后面紧跟的5F是检验位:5F = 25 xor F2 xor AF xor 27
如果用UID卡(0扇区可写的卡)改卡号,记得把后面的校验位也改了,否者部分读卡器不认卡号的,不要以为只改卡号就完事了哈。
实测海康门禁CPU读卡器需要认校验位
密码分KEYA,KEYB,KEYA在控制位FF078069左边

如3 区块: 56CE885DC32DFF0780694346A053464A
KEYA是56CE885DC32D
KEYB是4346A053464A

怎么看、算出来的呢?在同学的帮助下拿到10+人不同卡的数据
自己比较对比,发现密码是一个个字符计算的
并且卡号相同的字符对应密码的字符也一样,如下图同色的
图中上面前8位是卡号,卡号下面的是密码

上面都是一卡一密的数据,一眼就看出规律了

一卡一密算法(根据上述卡号密码)
[假装自己会C语言 写的“伪代码”]
num[8]=“25F2AF27”;
char pas[12];

pas[0] = num[6] xor 7 ; //2 xor 7 = 5
pas[1] = num[7] xor 1 ; //7 xor 1 = 6
pas[2] = num[4] xor 6 ; //A xor 6 = C
pas[3] = num[5] xor 1 ; //F xor 1 = E
pas[4] = num[2] xor 7 ; //F xor 7 = 8
pas[5] = num[3] xor A ; //2 xor A = 8
pas[6] = num[0] xor 7 ; //2 xor 7 = 5
pas[7] = num[1] xor 8 ; //5 xor 8 = D
pas[8] = ‘C’
pas[9] = ‘3’
pas[10] = ‘2’
pas[11] = ‘D’
pas[] = “56CE885DC32D”

0x04 结果

随着一卡一密算法攻破,可以说饭卡彻底失守了

学校饭卡黑名单依据是卡号,也就说只要卡号变了,黑名单就禁不了这张卡

但是,一卡一密也不是没用的,这时你的卡片密码要对的上相应的密码

刷卡机读卡是根据卡号算出这张卡独一无二的密码,然后再用密码访问/修改金额

可惜一卡一密算法已经看出来了,我们能伪造任意的卡号以及对应的密码

每区块最后4位的检验位也有了,伪造数据轻而易举

那么现在好玩了,饭堂内部没有监控,只要我改掉卡片的个人信息,伪造金额,就能消费了

甚至如果写出软件或用单片机做出修改卡号、密码、个人信息、金额、流水的功能

每次刷完卡后都更改上述信息,想抓到使用者简直是天方夜谭

对食堂饭卡的操作(别人分享,亲测有效)相关推荐

  1. 前端控制微信分享到群,朋友圈的方法,js禁止微信分享 亲测可用

    直接上代码,下面代码都是开发过程中记录的怕丢了,就在这备个份,使用过程中有问题可以私信或者联系微信:wxid_7yiygpz72wk622 另也承接小程序,网站开发,H5开发,程序二次开发,APP开发 ...

  2. IDEA 2020.3.2控制台中文乱码分享(亲测二、下图中控制台的编码改为UTF-8)

    IDEA 2020.3.2控制台中文乱码的个人解决方案分享 我的电脑环境:win1020h2,IDEA2020.3.2,Tomcat9.0.40,终端配的powershell 1 一.改文件编码,下面 ...

  3. 域名缩短源码PHP程序 分享 亲测可用

    1.输入短域请加上http(s):// 2.中文域名请手动Punycode编码后再使用 3.网址最长支持1000字符 4.密语最长支持3000字符(合1000汉字) 5.手动填写短域以及密码为可选项目 ...

  4. 淘宝评论问答列表接口 获得淘宝商品评论 API分享 亲测可用

    一个商品的客户体验如何,关乎会有多少客户会愿意回购,大量商家会花时间精力在售后回访上.作为电商公司来说,用户直接在商品评论上的回复可以直接作为售后的调研依据.淘宝上还有一个问答列表,通过客户问,购买过 ...

  5. FreeNAS详细安装及配置操作教程(亲测)

    准备文件 * FREENAS镜像,直接上链接 镜像下载 * rufus烧录tool,直接上链接 rufus下载 2.使用rufus将下载的FreeNas镜像烧录到U盘(8G左右) 3.启动你的主机,B ...

  6. CDH 5.1.5(parcels)集群中hive1.1.0升级到hive-1.2.1步骤全,升级hive元数据库,数据不丢失(亲测可用)

    1.下载hive-1.2.1安装包 http://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz 2.将安装包 ...

  7. 分享几个亲测有效的高效工作技巧

    这里是Z哥的个人公众号 每周五11:45 按时送达 当然了,也会时不时加个餐- 我的第「154」篇原创敬上 大家好,我是Z哥. 在工作中,你会发现有的小伙伴每天看上去很忙,但是好像产出的成果比旁边看上 ...

  8. Oracle 数据怎么实时同步到 MySQL | 亲测干货分享建议收藏

      摘要: 这段时间负责一个老项目开发的数据库管理工作,这个项目中开发库与测试数据库分离,其中有些系统表数据与基础资料数据经常需要进行同步,相信很多 DBA 同学经常会遇到要从一个数据库实时同步到另一 ...

  9. Oracle 数据怎么实时同步到 Kafka | 亲测干货分享建议收藏

     摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracl ...

最新文章

  1. loadrunner——win7+LR11配置
  2. Docker中未指定挂载点容器间volume卷的数据共享
  3. 除了PS,原来这个也可以轻松实现图像处理!
  4. Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G​
  5. MySQL备份失败,一波三折的问题分析和处理
  6. MS Script Control的 COM
  7. python中字典的value可以为任意对象_手把手教你学Python之字典
  8. FIRST集和FOLLOW集的构造
  9. unity3d发布linux版本_密码管理器 1Password 发布第一个 Linux 测试版本
  10. 高通笔记本装linux,在华硕畅370(TP370QL)骁龙笔记本上安装Ubuntu 18.04 ARM64的方法...
  11. 播放器市场瞧一瞧: 暴风影音和豪杰解霸前身后世
  12. Inspinia的version 2.4模板使用的谷歌字体加载很慢问题解决
  13. 1114 计算营业额
  14. Android中补间动画相关知识
  15. 相邻图片之间有空白间隙的问题解决
  16. golang map 获取某个值
  17. 汇编语言中xor指令_这个汇编代码有什么作用? (TEST,XOR,JNZ)
  18. 阿里云视觉智能API,核心技术一站共享!
  19. C++获取字符串长度
  20. 用了基木鱼还用网站服务器吗,基木鱼操作手册:营销通相关问题

热门文章

  1. QT 5.12.11 mysql8 提示Driver not loaded Driver not loaded
  2. 饥饿的小易(分枝限界法)
  3. JAVA NIO 异步TCP服务端向客户端消息群发代码教程实战
  4. 读书笔记:《亿级流量网站架构核心技术 -- 跟开涛学搭建高可用高并发系统》
  5. MySQL 教程基础介绍
  6. javplayer 使用教程_【教程】每日更新 | 立创EDA画图不求人系列视频教程@第一期目录...
  7. 从AMSU-A回收飓风暖芯并重新映射ATMS测量并消除雨水污染
  8. cloudfront_使用CloudFront进行动态图像交付
  9. cadence数模混合仿真反标sdf
  10. java创建微信小程序二维码