2021巅峰极客逆向so_get_sourcecode题wp
这题乍一看是个web,上传php马以后,可以看到flap.php,但是下载下来却是一堆乱码:查看容器中运行了nginx和phpfpm,推测是这两个用了插件,对源码进行了加密:依次查看nginx的php应用和模块,发现有个php_screw_plus.so很可疑。反编译后确认了此模块对文件对php文件解密后进行执行。在github上也搜到了该项目screw-plus项目源码下载后编译screw程序,
·
这题乍一看是个web,上传php马以后,可以看到flap.php,但是下载下来却是一堆乱码:
查看容器中运行了nginx和phpfpm,推测是这两个用了插件,对源码进行了加密:
依次查看nginx的php应用和模块,发现有个php_screw_plus.so很可疑。反编译后确认了此模块对文件对php文件解密后进行执行。
在github上也搜到了该项目screw-plus项目源码
下载后编译screw程序,记得要修改成so文件里的密钥,如下图红框位置:
然后运行,对源码目录进行解密:
满怀激动的打开flag.php:
依旧是乱码,推测有魔改,继而发现一个奇怪的函数:
这个函数名称倒过来就是key_get,说明这里返回的是key。
进入teg_yek看下:
这里就是获取当前处理的文件,然后通过软链接获取到真正的文件名,取文件名的倒数第五个字节的值作为key返回。
再看screw_aes函数:
很简单的逻辑,解密前先对数据进行异或而已。
这样只需要先对flag.php的数据异或一个‘g’,再用screw就可以解密了。
更多推荐
已为社区贡献1条内容
所有评论(0)