技术讨论 | 看我如何破解一台自动售货机
从上图信息中可知,目标APP程序使用了手机的IMEI串号作为了上述SQLite数据库argenta.db的加密密钥,通常的手机,在键盘上输入*#06#就可得本身串号。那么,我们用手机串号来试试吧,看看能否能把数据库文件打开: ![]() 哇,真的可以啊: ![]() 经过一番检查,我找到了UserWallets这个表: ![]() 并对其中的walletCredit一栏做了修改,把它从0改为了5(5欧元): ![]() 然后,我再把这个数据库文件拷贝回手机APP中:
破解验证 此时,YY一下,我的感觉就像游戏帝国时代(Age Of Empires)中的“罗宾汉”一样,可以随便拥有1000枚金币。好吧,还是先来写个小程序吧,通过这个程序,可以快捷地对目标APP数据库进行转储/恢复/篡改: ![]() 接下来,我们就带上手机,去自动售货机那试试看吧!呵呵,竟然成功地买了一瓶矿泉水,真的可以用其中的5块钱顺利地进行消费,还能反复消费使用! https://www.youtube.com/watch?v=LfczO8_RfLA 总结 从APP账户中的0元,到之后破解APP数据库后,我可以进行以下操作:
在对整个APP源代码做了大概分析之后,我发现其中的很多代码都未做混淆编码,这意味着,售货机厂商没有采取很好的措施来对用户数据和应用程序安全实行保护。 再三纠结 ,一个月后,出于白帽的心态,我还是向售货机厂商报告了这个漏洞,我也礼貌性地建议他们抛弃当前的APP架构,从头开发一个更好、更安全的程序。 【编辑推荐】
点赞 0 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |