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

1
>, <, ```, *, \$, \\/

exec执行无回显,

用tee命令把exec执行的结果输出到一个txt文本中

vidr|tee 1.txt

image-20230428125330260

发现当前目录没有flag

用命令du -ah /|tee 1.txt

从根目录开始列

ctrl+fflag

image-20230428130655604

找到了,然后读取出来

nl /flag | tee 1.txt

image-20230428130752959

完美网站(条件竞争)

访问会一直重定向,直接访问网页,他会重定向到xxxxxxxx/?img=dHVwaWFuLnBuZw==

参数img的值解出来是tupian.png,这里判断img传过去可能是一个读文件的方法。

直接访问会提示n没被定义

image-20230428142440565

加上参数 n

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

直接访问没有任何东西也没有提示

这时候想到之前的img参数,把ffffpq.phpbase64加密,赋值给img参数,让它读出来

image-20230428144015200

解出来内容就是ffffpq.php的内容

成功get flag

image-20230428144117321

image-20230428144135207


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