【CTF web2】


一、CTF web 反序列化

1、是什么?

序列化:是将变量转换为可保存或传输的字符串的过程;实现函数是serialize()
反序列化:把这个字符串再转化成原来的变量使用,就是序列化的逆过程。实现函数是unserialize()

2、怎样做:

实现函数是:serialize()和unserialize()
反序列化数据格式
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
O:对象
7:名称的长度
2:属性的个数
{ s:字符串 4:name字节 name:值 i:整数 90:值 }:属相情况

反序列化:

在这里插入图片描述
在这里插入图片描述

3、为什么:

序列化和反序列化结合起来,可以轻松地存储和传输数据,使程序更具维护性

4、漏洞概念:

反序列化漏洞:也叫对象注入,就是当程序在进行反序列化时,会自动调用一些函数,但是如果传入函数的参数可以被用户控制的话,用卢可以输入一些恶意代码到函数中,从而导致反序列化漏洞。

4、例题:

例题1

做题步骤:
1.复制源代码到本地
2.注释掉和属性无关的内容
3.根据题目需要,给属性赋值(这是关键)
04.生成序列化数据,通常要urlencode
5.传递数据到服务器(攻击目标)

在这里插入图片描述

在这里插入图片描述

运行得到:在这里插入图片描述
粘贴到 hackbar:
在这里插入图片描述
说明phpinfo()测试通过
改为查看系统命令 :system(ls)
在这里插入图片描述
在这里插入图片描述
重新运行,粘到hackbar即可

例题2
在这里插入图片描述

在这里插入图片描述修改
在这里插入图片描述

在这里插入图片描述
运行复制hackbar即可
http:/ /122.114.252.87∶1126/unserialize / ?
exp=0%3A5%34%22Login%22%3A1%3A4%7Bs%3A11%3A%22%Q0Login%99user%22%3Bs%3A5%3A%22admin$22%3B%7D

.

二、CTF web 魔术方法

1、手册:

在这里插入图片描述

2、属性赋值

1.直接赋值:优点是方便,缺点是只能赋值字符串。
2.外部赋值:优点是可以赋值任意类型的值,缺点是只能操作public属性。
3.构造方法赋值(万能方法)︰优点是解决了上述的全部缺点,缺点是有点麻烦。

三、CTF web POP链

POP(面向属性编程)链是指从现有运行环境中寻找一系列的代码或指令调用,然后根据需求构造出一组连续的调用链。
**反序列化利用就是要找到合适的POP链。 **

反序列化题目做题步骤:

1.复制源代码到本地
2.注释掉和属性无关的内容

3.根据题目需要,给属性赋值(这是关键)寻找POP链:
a .起点: unserialize的参数可控的地方
b.终点:执行代码或者可以任意读取文件的地方。
c.连接起点和终点:研究属性和方法(特别是魔术方法)

4.生成序列化数据,通常要urlencode
5.传递参数到服务器(攻击目标)

该部分开个头,之后补充

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值