如何根据APP与服务器端的融合

如何根据APP与服务器端的融合

黑客资讯hacker2020-08-28 8:08:156130A+A-

序言

谈起APP上的渗入检测,许多 盆友在取得一个APP的情况下,通常会将手机客户端的检验与服务器端的检验分到很开,愈来愈多的测试工程师手机客户端检验只是限于静态数据专用工具扫描仪,不重视手机客户端财务审计与服务器端渗入的融合,以致于APP的安全性财务审计报告中服务器端的系统漏洞占较为少。

大家接下去会根据一次网警网站渗透测试新项目,来跟大伙儿聊一聊如何根据APP与服务器端的融合,getshell。期待根据这一实例,能给大伙儿在app网站渗透测试全过程中具有一个毛遂自荐的功效,一招制敌,百步穿扬。

因为顾客给了大家确立的检测范畴,且关键规定获得信息网管理权限,因此 大家早期干了各种各样信息收集。在其中有一点比较关键,便是发觉了內部职工应用的一个电子邮件类的app,大家也期待为此为突破点,最后取得网络服务器的管理权限。


步骤剖析

1

绕开SSL Pinning抓包软件


取得这一APP后,大家最先作出了一个胆大的假定:其內部应用的手机客户端在安全防范上是不是较差呢?  

因此大家临危不惧,准备立即应用Burp抓包软件,寻找运用点后进攻服务器端,运用有关系统漏洞一步到位,Get Shell。

殊不知,历经试着发觉,手机客户端对资格证书开展了校检,burp居然无法抓包软件。发展就碰到了阻拦,因此 ,大家先得处理抓包软件难题。

资格证书认证关键有二种方法,各自为双重校检、单边校检。而双重校检一般存有于金融机构、金融业等app中,因此 为了更好地提升进攻高效率,大家假设其为单边校检,并试着绕开。

该实例大家依靠了JustTrustMe,十分幸运的是根据该软件,大家绕开了资格证书校检。可是在这儿又碰到一个难题:大家捉到的包全是数据加密的。以下:

因为要求和回应数据文件都开展了数据加密,而且应用一样的数据信息开展要求的情况下,每一次保密都不一样,很显而易见,数据库加密密匙是变化规律的。这里的阻拦让我有点方了。

假如手机客户端完成了OTP数据加密基本原理得话,手机客户端是必须存在非对称加密优化算法如RSA 的公匙的。服务器端存在非对称加密优化算法的公钥,手机客户端选用本身转化成的对称加密密匙如AES来数据加密信息,随后将此对称性密匙用服务器端的公开密钥来数据加密以后,将它和数据加密后的信息内容一起发给服务器端。服务器端先用相对的独享密匙开启数字信封,获得对称性密匙,随后应用对称性密匙解除数据加密信息内容。

可是,抓包软件全过程中发觉,它最先有一个从服务器端获得密匙的全过程。发觉每一次要求前,手机客户端必须向服务器端推送要求,获得Key。从数据加密数据信息自身看,好像是RSA。从而推断它的一次一密并不是数字信封的方法。那麼接下去,破译它的数据加密逻辑性就刻不容缓了。

之上流程是绕开资格证书校检开展数据信息抓包软件。大家但是立在公平正义的视角看一下手机客户端客户端证书校检威协噢。


Tips:

假如手机客户端在与服务器端通讯的全过程中沒有对传送的数据信息开展维护与一致性校检,而且未做一切的资格证书校检,这将立即造成 中间人攻击,可反复推送提取到的要求报文格式,并观查和剖析服务器端的反映,完成进一步的进攻。

常见的专用工具有Wiresha rk、Burpsuite、Fiddler和Charles等。


2
反汇编剖析数据加密逻辑性

大家根据反汇编APK文档,试着去精准定位数据加密涵数,看可否破译所述互联网要求中的加解密逻辑性。 可是大家反汇编后发觉APK被加了壳。

那麼大家一招制敌,应用FRIDA-DEXDump开展蜕壳,且取得成功的取得dex文件。

根据对蜕壳取得的dex文件开展反汇编,精准定位getkey要求开展剖析相匹配的数据加密逻辑性。

剖析精准定位数据加密到涵数以下:

   

历经周密剖析,发觉这一APK数据加密逻辑性是那样的:

手机客户端先推送要求获得对称性优化算法AES密匙,可是AES密匙应用服务器端的RSA公钥开展数据加密了,手机客户端根据RSA公匙破译后获得AES密匙。对互动数据信息开展数据加密。而且,从破译包数据信息看,沒有签字如sign字段名,传送沒有开展签字校检,这令人感觉一些喜悦。

根据所述编码,大家找到RSA数据加密应用的公匙,发觉有公匙破译的涵数,这个时候,我们可以根据试着启用公匙破译涵数,撰写相匹配的破译脚本制作。获得AES密匙与空间向量。

大家根据蜕壳、反汇编,取得了java core编码,取得成功破译了数据文件加解密逻辑性。接下去能够开展系统漏洞发掘。可是在手机客户端安全性层面,所述全过程还很有可能会碰到反调节、反HOOK、一致性校检、重签字检验等威协。

Tips:

运用通讯数据库加密加签:为了更好地避免 数据信息被伪造,手机客户端和服务器端一般对互动数据信息开展数据加密。普遍的加密算法为,对称加密、如应用RSA。对称加密如,DES、AES这些。

可是单纯性的对称性和非对称加密都存有一定的安全隐患,因此 在对加密技术的应用中,一般选用对称加密融合对称加密融合的方法,也就是数字信封开展数据信息传送。确保了传输数据的安全性。而且在传送全过程中,对数据信息应用非对称加密优化算法开展签字验签,防止数据信息在传送全过程中被伪造。

运用调节:在运用逆向分析的全过程中是静态数据剖析与动态性调节紧密结合的,在其中静态数据剖析便是上边常说的编码反汇编。运用调节便是动态变化的一种关键的方法,这儿主要是根据无源代码开展调节,这儿分成SO调节与smali调节,在其中SO调节关键应用的是GDB、LLDB、IDA pro等专用工具,调节smali应用的是IDEA、AndroidSt udio等相互配合Smalidea软件开展调节。

HOOK:主要是根据动态变化与静态数据剖析后,寻找运用的重要编码部位,根据HOOK软件阻拦重要编码启用,获得基本参数或伪造调用函数等。hook的专用工具关键有Xposed、Cydia、Frida等,在其中自身撰写native hook编码,相互配合引入的方法开展完成。

编码反汇编:编码反汇编便是将APK中包括的每个文档,依据其固定不动的文件格式,从二进制反汇编成可查询的编码,与顺向开发设计是反过来的实际操作,反汇编的关键专用工具有apktool、Androidkiller、jeb、jadx、smali/baksmali、IDA pro这些。

二次装包:每一个Android程序运行都是有一个电子签名信息内容,在Android系统软件安装应用的情况下会对电子签名信息内容开展校检,假如运用沒有对其签字开展校检,那麼就存有二次装包的难题,导致运用被伪造,嵌入木马病毒等。签名工具关键有jarsigner、apksigner 等。


3
发觉引入点

因为该手机客户端是内部员工应用,试着申请注册帐户,沒有成功注册,发觉必须管理人员审核通过才可以登录。工程爆破未果,历经抓包软件破译,改动数据文件进一步检测,再度破译回到数据文件,发觉登陆处存有SQL引入系统漏洞,并且是出错型引入。

历经手工制作引入,Payload以下:

Request:

获得密匙:

破译密匙:

登陆要求包:

登陆回应包:

Response: 破译登陆回应包:

Tips:

中间人攻击:传输数据层面关键是在运用与服务器端开展数据信息互动时造成的安全风险,很有可能存有数据泄露、传送数据伪造、要求重放攻击等。

假如运用在与服务器端互动传送数据的全过程中,未对数据信息开展加签、一致性校检,传送数据就非常容易被伪造,在融合OWASP Mobile TOP10中的系统漏洞就可以对服务器端开展进攻。比如根据上传文件系统漏洞,sql注入系统漏洞等获得服务器端的数据信息,甚至是取得服务器端的shell。

后边的案例便是根据伪造传送数据,融合网络安全问题获得的shell。


4
dump客户数据信息

历经手工制作引入,数次结构sql语句,获得一部分客户的帐户和登陆密码:

Request

要求:

回应包破译:

破译:

用引入出去的数据信息取得成功登陆APP。
5
提交Get Shell

获得到客户数据信息后,我应用了在其中某职工的账户密码,立即登录app。发觉该app作用包含手机通讯录查寻、数据库同步、excle上传文件、头像图片提交、压缩文件下载及其查寻作用,且发觉网页上传均未开展黑与白名册过虑。可运用的点较多。

尽管这里有N种方法能够运用。可是大家不在毁坏受托人一切正常业务流程的的状况下,挑选了头像图片提交,立即提交jsp取得shell。

后端开发沒有校检立即文件上传取得成功。

取得成功回应数据加密包。

破译回应包。

Shell实行取得成功。

到此,Get Shell。大家本次检测的总体目标及其达到。

Tips:

SQL引入:在运用运作期内防止不上在服务器端完成数据信息持久化,这很有可能便会实际操作到数据库查询,而在实际操作数据库查询的全过程中未对主要参数开展校检,造成 数据库查询存有引入难题,导致数据信息数据泄露,比较严重的应写shell,获得网络服务器管理权限。


小结

一些APP在运作期内都是存有上传照片的实际操作,可是因为未对文档开展校检,造成 能够提交非照片文件格式。假如提交的是一个包括了恶意代码的文档,很有可能造成 网络服务器数据泄漏,比较严重可获得shell。

除此之外,服务器端也有许多 的风险性是不能忽视的,网络攻击有十分多的方式,运用单独系统漏洞或是组成系统漏洞对服务器端开展进攻。

事实上在APP运用安全性层面也有许多 的风险防控措施,他们会对运用总体的安全性导致比较严重的威协。一个安全性的运用也不仅是根据应用某一技术性来完成的,只是创建在一个健全的安全性构架、安全性开发设计全过程、安全性测试、安全运维、安全工作的全部步骤的基本上的,缺一不可。

大家所做的安全性抵抗,正好似沒有硝烟的战争。战事的結果除开胜负之分,也有公平正义与非正义之别。

我们在平常针对APP的渗入中,常常饰演一个网络攻击的人物角色,而我们在进攻的全过程中,会应用一切随机应变的方式,唯一的差别便是我们要時刻立在公平正义的角度,探寻了其系统漏洞基本原理,却不因而对其导致危害。

之上。

附:文中中采用的自然环境以下,供君参照:

JustTrustMe:

https://github.com/Fuzion24/JustTrustMe


Burp:

https://portswigger.net/burp


Charles:

https://www.charlesproxy.com/


Idea:

https://www.jetbrains.com/


jadx:

https://github.com/skylot/jadx


Xposed:

https://github.com/rovo89/Xposed


文中创作者:酒仙桥六号军队

文中为安全性脉率栏目创作者公布,转截请标明:https://www.secpulse.com/archives/137960.html

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理