[ACTF2020 新生赛]Upload
考点
前端后缀名绕过的方式php可执行文件后缀名的种类主界面 有一个灯泡,提示你上传文件,前端有验证,只能上传jpg|png|gif
![图片[1]-[ACTF2020 新生赛]Upload – buu刷题笔记-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/04/20220414115325-62580b351a8cd.png)
这个时候我们有两种方式绕过前端验证
直接在源码里把验证函数删掉
![图片[2]-[ACTF2020 新生赛]Upload – buu刷题笔记-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/04/20220414115325-62580b352b54f.png)
先把文件改成jpg格式,然后上传,用burp拦截,再改成原来的格式
我们选择第一种方式,试着上传一下php文件,内容可以先用phpinfo() 测试一下能不能成功
![图片[3]-[ACTF2020 新生赛]Upload – buu刷题笔记-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/04/20220414115325-62580b3538122.png)
页面提示nonono bad file!,看来后端也对后缀名进行了检查,那么我们就用phtml试试,常用的php后缀名绕过见[极客大挑战 2019]Upload 成功上传

打开后,成功获得执行了phpinfo()

接下来只要编写简单的php一句话木马就行!后端没有对文件内容进行任何检查。用蚁剑连接后成功在根目录得到flag。
<FilesMatch \.phtml$>
SetHandler application/x-httpd-php
</FilesMatch>
<?php
error_reporting(0);
//设置上传目录
define("UPLOAD_PATH", "./uplo4d");
$msg = "Upload Success!";
if (isset($_POST['submit'])) {
$temp_file = $_FILES['upload_file']['tmp_name'];
$file_name = $_FILES['upload_file']['name'];
$ext = pathinfo($file_name,PATHINFO_EXTENSION);
if(in_array($ext, ['php', 'php3', 'php4', 'php5'])) {
exit('nonono~ Bad file!');
}
$new_file_name = md5($file_name).".".$ext;
$img_path = UPLOAD_PATH . '/' . $new_file_name;
if (move_uploaded_file($temp_file, $img_path)){
$is_upload = true;
} else {
$msg = 'Upload Failed!';
}
echo '<div style="color:#F00">'.$msg." Look here~ ".$img_path."</div>";
}
?>
所以最终flag为flag{1313cb3a-42f4-4b6d-8633-fd9209f9b775}
© 版权声明
渗透云记的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
渗透云记拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。详情见本站的“免责声明”如果有侵权之处请第一时间联系我们删除。敬请谅解!E-mail:admin@encenc.com
THE END

![[极客大挑战 2019]Upload - buu刷题笔记-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/04/20220414112803-6258054313b3c.png)













请登录后查看评论内容