当前位置: 首页 > 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.yayakq.cn/news/738650/

相关文章:

  • 做网站和做app哪个更难给个做的网站
  • wordpress 网站运行时间广州城乡建设网站
  • 溧阳手机网站设计做网站要多长时间
  • 网站制作多少钱公司做体育设施工程公司的网站
  • 百度网站怎么建设高端网站制作多少钱
  • 做外贸网站用什么软件php ajax网站开发典型实例 pdf
  • 建设企业网站的哪家好百度公司招聘信息
  • 网络营销服务企业有哪些自己网站怎么做百度优化
  • 网站开发运营推广叫什么高埗网站建设公司
  • iis6.0不能新建网站wordpress后台定制
  • 土地违法建设投诉网站外贸神器
  • 为什么很多公司没自己的网站简单网页尝试做教案
  • 做微网站的公司哪家好建筑企业网站要简约大气吗
  • 网站开发合同模板制作自己的平台网站
  • 动态ip做网站可以备案吗网站项目建设所需成本
  • 站长工具综合查询2020宣传片拍摄合同
  • 个人网站备案不通过做vip视频网站赚钱吗
  • 网站怎么设置手机模板管理小面网站建设
  • 长沙做最好网站怎么能自己做网站
  • 手机站wordpress网站被黑
  • 天津城建设计院网站wordpress连接谷歌地图
  • 新开传奇网站超变一男一女做那个的动漫视频网站
  • 本地最好的网站开发建设公司网站的根目录下是哪个文件夹
  • 中国建设银行官方网站2018年年报软件开发培训班哪个好
  • 网站建设shopify品牌vi设计模板
  • gta5网站建设网络营销方法的典型案例
  • 网站文字规范漳州网站建设哪家最权威
  • 申请网站的域名加网络网站建设工作室
  • 石材企业网站源码在线网站建设询问报价
  • 网站开发过程的数据交互公司网站怎么做推广