我和webshell的不解之缘之webshell再解密

解密2021年新型webshell

先讲一下拿到webshell的过程哈

事件的起因是酱紫的

之前和我玩CrossFire(CF)的一个朋友,前几天突然找到我,问怎么查询网站是不是真的
在这里插入图片描述
然后他解释说他想考一级消防工程师证,因为种种原因自己考不了,所以就找到了一家教育机构

那家机构就是假站的官方指定报名机构

他当时一听就感觉有问题,然后打电话到中国人事考试网咨询,了解到根本没有什么官方指定报名机构
在这里插入图片描述
然后我一搜索,就发现是假的了,也是急忙制止了我的这位好哥们
在这里插入图片描述
当然,这里可以忽视哈,我嘛,肯定是非常直的啦

接下来我便对假站开始了渗透之旅
在这里插入图片描述
再说下去就要跑题了,哈哈,至于入侵假站的过程,请听下回分解。

反正我几经波折,我终于拿到了那个假站的webshell

上去一看,哟呵,居然有人在2021-06-13就已经通过和我一样的入侵方式拿到了webshell,并且还明目张胆的放在根目录(我是没那么大胆)

于是,我便把这webshell拿来玩了一下,结果居然发现里面功能还挺多的,感觉还不错
在这里插入图片描述
但是打开代码一看,里面的乱码字符看得我头疼
在这里插入图片描述
在这里插入图片描述
是不是一眼就看到了str_rot13函数,我也是,但发现rot13解不开

于是我便转战pack()函数,俺不懂PHP,咋办捏

当然是打开万能的百度啦,家中常用,嘿嘿
在这里插入图片描述
这不就明白了,然而,有什么卵用呢

不管了,直接把这几行搞懂了,那么我们不要它执行,我们要他输出

把后两排删掉,直接上echo $uri; 开启Debug
在这里插入图片描述
结果,输出了个这么个鬼玩意

那咱肯定不服啊,建立个1.php文件,把这内容搞里头
在这里插入图片描述
尾部没有任何函数,就顶部有关键函数

我尝试过解密gzuncompress(base64_decode()),然并卵

那继续使用输出思路,看到就是这个eval在执行全局,那咱再来一波echo
在这里插入图片描述
VS Code抽风,咱们浏览器来当Debug哈

怎么样,看到这一串是不是头都大了

复制下来,继续建2.php呗

在这里插入图片描述
看到这个,是不是头更大了,我忍住了想关电脑睡觉的冲动,给他格式化并注释一下
在这里插入图片描述
舒服多了不是,但玩归玩,闹归闹,他还继续跟我开玩笑

在这里插入图片描述
去掉那些杂七杂八混淆视听的函数,那不就又回到1.php的开头了嘛

echo(gzuncompress(base64_decode("$data")));

那咱直接把1.php复制成3.php,直接替换里面的密文不就是了
在这里插入图片描述
Ctrl+C,打开浏览器看看结果
在这里插入图片描述
明人不恰暗shi,我想刀了他

这些函数的密文我都懒得解了,跟2.php一样的,直接替换密文做4.php吧

您猜怎么着,报错了,那肯定是哪里没对
在这里插入图片描述
既然开始报错了,那咱还得继续研究3.php echo出来的结果

然后发现,这密文就是base64加密的结果,我直接base64解密不就行了

但是,啊,但是,我去网站(base64.us)解密,然后复制回来,发现还是继续报错
在这里插入图片描述
base64.us就是这点不好,容易搞出编码问题来

那我就自己写个base64解密的php吧,现在已经来到了5.php
在这里插入图片描述
把3.php做出来的结果的密文搞里头,然后浏览器调试结果
在这里插入图片描述
捏麻麻滴,这什么鬼,直接给我执行HTML代码了,并且还给我中文乱码了是吧

那咱直接查看一波源代码,顺便把查看编码改成GBK
在这里插入图片描述
芜湖,这不就来了

然后上6.php,书写终章
在这里插入图片描述

这里的报错可以忽略不计了,几乎都是里面需要中文字符才提示报错的,并且头部已经关闭报错输出了

值得注意的是,图中的两个地方

1.源代码里面看见$password是被注释的,我们需要去掉

2.还记得之前的乱码问题么,那是因为他这里设定的是强制gbk编码(源代码里可见),咱们直接改成UTF-8

保存,调试终章
在这里插入图片描述
OK,完美谢幕

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值