放假了,得去挣点学费,遂进厂,厂里的app,越权漏洞和信息泄露,以及基础的逆向分析
注:以下内容仅供学习和参考,请勿用于违法行为活动
登陆
image-20230509105614123.png (23.87 KB, 下载次数: 0)
下载附件
2023-5-9 10:58 上传
应该是加密了,并且有key,app有壳,xx御安全,我用的frida-dexdump -FU脱几个dex出来
用jadx打开不错,改用GDA,网上有免费版
这里一个一个dex的搜,出现在classes02.dex中
image-20230509091845206.png (147.42 KB, 下载次数: 0)
下载附件
2023-5-9 10:59 上传
其中key是由你的工号,用异变凯撒变换,工号和密码在so中完成加密
image-20230509092050306.png (9.45 KB, 下载次数: 0)
下载附件
2023-5-9 11:00 上传
可以先hook看一下传进去的值,在GDA这个工具中可以直接右键函数可以直接hook,还是比较方便的(提前在adb中启动frida)这里打一下码,见谅
所里面非常简单,没有混淆之类,但是把传进去的key又做了一次异变凯撒变换,再进行des cbc加密
看到一个字符串,不免想到是iv,(函数名就是DESencypt)
image-20230509092527547.png (60.22 KB, 下载次数: 0)
下载附件
2023-5-9 11:01 上传
不过后来我试图重写时发现,加密内容非8整倍用0字节填充,结果不一样(但不影响下文)
用py复写整个登陆,可以上号,我发现返回包中尽然没有任何维持身份的东西(就很奇怪,登陆就是个摆设?)
信息泄露
[ol]
身份信息泄露
在访问我的资料,发现从服务器上请求中参数值需要工号(注意,以下信息量爆炸,统统码住)
注:据我像老员工打听,工号就是按照顺序来的,工号起初设计应是考虑了1000w的人(已离职工号是已使用,不会在重启工号给别人使用,该洞即可遍历所有工号,但是是一个工程量巨大的事情)
image-20230509093801861.png (72.42 KB, 下载次数: 0)
下载附件
2023-5-9 11:02 上传
薪资卡信息
访问薪资卡,会要求我们输入登陆密码,还有一个摆设本地验证码,获取信息,请求如下
image-20230509094613960.png (54.62 KB, 下载次数: 0)
下载附件
2023-5-9 11:03 上传
同样工号加密了,搜索易得java 层DES加密,
image-20230509095013721.png (93.85 KB, 下载次数: 0)
下载附件
2023-5-9 11:03 上传
拿到key,对返回结果一统解密,泄露银行卡卡号(个人),开户行,姓名,这里就不放图片了,很暴力
人脸图像
进入厂区有些时候需要刷脸,也可刷厂牌,用户可以自己在app中采集人脸,(进厂前已收集一张)
先获取图片路径和图片绑定的uuid(码住)
image-20230509103521432.png (23.61 KB, 下载次数: 0)
下载附件
2023-5-9 11:03 上传
随后向接口getImageByUrl获取图片,我试图尝试任意文件读取漏洞,但是似乎失败了,fuzz读取/etc/passwd和/etc/shadow返回空,其他404
人脸图片在app中不是每个用户都有(有的自己删除了),影响:都有了你的sfz_id和name、phone,再加个人脸图附魔不过分吧,别人可能干一些非法认证,绑定一些人脸业务
[/ol]
越权
额,我也不知道这算不算越权
回到头来分析,好像楼掉了些甚么,看了看验证码,修改忘记密码之类
其中忘记密码是在登陆界面,会先输入你的工号,会想服务器获取工号绑定的手机号,app上是对手机号的中间4位打了"*"号,我一看包,卧槽,这么暴力吗,响应包中就是完整的手机号(又是一个任意信息泄露),
你以为就这,之后向服务器请求发送验证码,发送过来的验证码我发现竟然在请求包中(即验证码在本地随机产生一个6位数)
image-20230509100448703.png (55.07 KB, 下载次数: 0)
下载附件
2023-5-9 11:04 上传
我马上即想到任意用户密码修改,因为验证码由我们所控制,后来我发现根本没必要
接下来重置密码(只需要填写新密码),发现新大陆(超级暴力)
请求包中的内容pwd和EmpNo(工号)是上文提到的so中的加密方式,key也同理的
image-20230509100811427.png (48.65 KB, 下载次数: 0)
下载附件
2023-5-9 11:04 上传
那么就出现了,任意用户密码重置,实测我朋友已成功
更加暴力的
众所周知,厂里是有储物柜的,有电子锁和自带钥匙的那种
这个厂有部分员工是在使用电子锁,开锁方式(厂牌和手机上的这个app远程开锁)
结合上面我们已经有了任意用户密码重置的漏洞,网络黑客直接侵入现实
[ol]
获取储物柜位置
像服务器发包,只需工号,返回储物柜位置,没有则null
开柜
原来没有那么复杂,开柜需要输入密码,密码是本地校验(逆天?),后像服务器发送开柜指令(只需工号),原来是我多想了
image-20230509102905236.png (232.03 KB, 下载次数: 0)
下载附件
2023-5-9 11:05 上传
[/ol]
后记
这个app现在对我而言基本没什么安全所言了,而这些信息都是在进厂前就被收集了的,但是厂商对待你们的信息那完全就不当回事
如果有看官看出来了是哪个厂,也请莫要声张,厂商大概是不会去修复这些漏洞的,以免造成大规模的信息泄露及物理安全
有出现错别字见谅,因为要睡觉了
以上内容仅供学习和参考,请勿用于违法行为