CTF之萌新学习web(文件上传2)

文件上传2

配合Apache的解析缺陷

Apache的解析漏洞主要特性为Apache是从后面开始检测后缀,按最后一个合法后缀解析
例如:
1.php.owf.rar “.owf"和”.rar"这两种后缀是apache不可识别解析,apache就会把1.php.owf.rar解析成1.php

实验环境:upload-labs:第四关
CTF之萌新学习web(文件上传2)_第1张图片
黑名单校验,可上传apache无法解析的后缀名,这里上传了xxx.php.xxx内容为:

CTF之萌新学习web(文件上传2)_第2张图片
试试能不能访问
CTF之萌新学习web(文件上传2)_第3张图片
成功执行了php语句!!

文件头校验

getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。
CTF之萌新学习web(文件上传2)_第4张图片
绕过方式:在恶意脚本前加上允许上传的文件头标志
CTF之萌新学习web(文件上传2)_第5张图片
实验环境:CTFHub-文件头检查
上传php文件发现
CTF之萌新学习web(文件上传2)_第6张图片
在一句话木马前加入文件头,修改文件类型上传
CTF之萌新学习web(文件上传2)_第7张图片
发现上传成功,最后连上蚁剑得到flag
CTF之萌新学习web(文件上传2)_第8张图片
可参考各类文件的文件头标志

竞争上传

文件先通过move_uploaded_file进行保存,然后用in_array判断文件是否为图片类型,如果是就用rename进行重命名,如果不是,则使用unlink删除文件。所以可以利用这个时间差,当文件保存后,就不断访问该文件,使得它又生成一个shell.php,之后即使上传文件已经删除,shell.php仍然存在。
实验环境:upload-labs第17关
');?>
代码如上,即执行写入shell.php,所以说我们要快速访问文件即可,利用burpsuite
CTF之萌新学习web(文件上传2)_第9张图片
进入爆破模块,随便找一个无用的参数,设置为变量
CTF之萌新学习web(文件上传2)_第10张图片
从1到10000次进行上传,同时开始访问上传文件的路径的intruder,就是对/upload/1.php进行无数次访问。然后在buuctf上有限制,访问频率过快,就在本地搭建的靶机下实验。
CTF之萌新学习web(文件上传2)_第11张图片
为200就是访问成功,生成了shell.php文件,在文件夹看一下
CTF之萌新学习web(文件上传2)_第12张图片
上传成功,看看能不能执行函数
CTF之萌新学习web(文件上传2)_第13张图片
这里我有个问题,一句话木马的POST没有大写,后来在文件夹里改的。。。。。。
可以参考大佬做题的记录:简析GXY_CTF “BabyUpload”上传绕过+条件竞争

你可能感兴趣的:(ctf)