SCTF2021 pwn Christmas Wishes 出题思路+预期解

SCTF2021 pwn Christmas Wishes 出题思路+预期解

sctf2021 pwn出题思路
赛题文件+exp: github

文章目录

  • SCTF2021 pwn Christmas Wishes 出题思路+预期解
    • 题目描述
    • 出题思路
    • 调试方案
    • getshell
    • exp

题目描述

圣诞许愿!请输入你的愿望吧!现在已经全面支持json格式!(漏洞利用脚本存在直接成功情况,请在本地搭建环境成功后尝试利用远程,远程环境每五分钟重启一次。)
Make a Christmas wish! Please enter your wish! Now has full support for json format! (Vulnerability exploit script exists direct success, please try to exploit the remote after a successful local build environment, remote environment restart every five minutes.)

题目分值:800

解题人数:6

题目文件

出题思路

其实最开始没想做成一个php pwn题目,原本就是写了个json parser, 然后模拟一个大的项目中的用来处理json的一个小组件,里面存在漏洞, 构造个环境去利用。

在写完以后发现了一个parser_string位置的堆溢出漏洞,而且和cve 2021 3156一样。

SCTF2021 pwn Christmas Wishes 出题思路+预期解_第1张图片

然后配合链表单向修改可以实现任意地址写,

SCTF2021 pwn Christmas Wishes 出题思路+预期解_第2张图片

在和@AFKL简单讨论这个思路时提到可以直接做成一个php网站,由于本来的代码也是模块化出来的,于是很简单的修改成了一个php拓展,搭建出来目前这个样子。

原本elf版本的在文件 JsonParse_elf, php拓展在文件jsonparser_php

调试方案

因为是个so文件,编写了一个简单的loader进行调试

#include 
#include 
#include 
#include 

typedef struct reader {
   
    char *buf;
    int size;
    int offset;
} _reader;

int main(){
   
    void *handle = dlopen("modules/jsonparser.so", RTLD_LAZY);
    void *(* Parser)(<

你可能感兴趣的:(pwn,题目的整理,安全)