type
status
date
slug
summary
tags
category
icon
password
本栏目前言
以前总是和别人一起研究过许多平常没咋注意,但是又非常有意思的小姿势,然后弄完后,但过了许久不用细节可能就忘的差不多了。所以想着开了个小栏目来记录一下一些我平常没咋注意到的、有趣的安全相关内容,可能更新也不是特别的频繁,毕竟不是天天都能遇到这些奇奇怪怪的点的,哈哈。
不过栏目的初衷是:在接触新东西时,遇到不理解或者感觉理解不透彻的,可以给自己或别人解答一波,顺便记录一下,以后可以回来看看,感觉挺有意思。
就感觉一般我们在学习新东西的时候,都是充满好奇心的,总是好奇这好奇那,这理解起来怪怪的,那不懂,现在有了点基础,自己遇到或别人问到了相关的,以前没注意到的,没能回答上来的,没能很理解的,也可以研究分析一波原理,感觉挺有趣的,所以栏目名称是有趣的安全小记 (
正题
这要和一个在备考 PTE 的同学说起,这是3月份的事情了(之前为了解释清楚写了个文档,一直在语雀扔着)
这个菜刀连接马长这样的
不过他说连不上,我就奇怪了,你们老师发的马竟然连不上,不应该呀。。
然后和他激烈的讨论了一波,无果
回到宿舍分析了一波,首先看马的主要函数
preg_replace
- 第一个参数表示匹配的模式,这里是匹配
[(.*)]
里的内容,
/e
表示把第二个参数里的内容当作php代码来解析
- 第三个参数base64解码为
[@eval(base64_decode($_POST[z0]));]
- 第二个参数
\\1
在正则表达式里表示匹配的第一个括号中的内容
因此
表示
为什么密码是
Hello
呢,来观察一下中国菜刀连接的包,- 2016 版本不行,抓包后发现,连接机制不一样…
- 2014 版本可以正常连接
- 2011版本也可以正常连接,看包也更直观看出,2333
以 2014版本为例,wireshark 抓包
可以看到菜刀,无论你密码是啥,密码参数只是跳板,他会传入一些值,然后上面我们感到疑惑的马
if
不为空即可过,然后 z0 才是真正的马。base解码后为平常我们的木马是类似于这样的
我们传入的密码是
abc
,其实他是会把 abc
传入的东西 eval
一下变成代码,然后把 z0
值传入,如果成功,就成功啦~所以上面的
z0
不用传,就是因为菜刀客户端会自动传。2016版不行,因为新版机制不一样了,2333这是 2011 版本菜刀的包,感觉比 2014版更清晰一点~
感觉这样一看就捋顺了,顺便收获了人生中语雀的第 1 个赞,泪目
不过还是有点佩服,给这个马的作者对菜刀的机制研究的应该算是比较深入和透彻了,膜拜.jpg
感觉这马还能起到一丢丢的免杀作用,2333,尤其是在 2011年的时候,估计是比较不错的连接马了。