upload-labs挑战笔记

Pass-01

直接上传php木马,发现前端报错
image.png
关掉JS,再次进行上传
image.png
右键获取地址
image.png
获取shell
image.png

Pass-02

在服务器端对数据包的MIME进行检查,只让Content-Type为image/jpeg | image/png | image/gif的文件通过。由此可知,它只对Content-Type做了判断,并没有对文件进行判断,因此我们可以上传.php文件,将Content-Type改为image/png。
image.png

Pass-03

黑名单绕过,上传php后缀文件会被拦截,但默认状态下php3、php4、php5、phtml后缀文件都会被解析为php,所以我们上传phtml后缀文件进行绕过
前提是apache的httpd.conf中有如下配置代码

AddType application/x-httpd-php .php .phtml .phps .php5 .pht

image.png

Pass-04

上传.htaccess,修改站点的超文件解析。内容为AddType application/x-httpd-php .jpg,这个指令代表着.jpg文件会被当做php来解析
构造.htaccess,实现重写文件解析,同样这样的前提也是得在配置文件里面有这样的一句话

AllowOverride All
LoadModule rewrite_module modules/mod_rewrite.so

image.png

Pass-05

后缀大小写绕过,上传.PHp后缀文件
image.png

Pass-06

文件后缀空格绕过,通过burp抓包修改数据包
image.png
image.png

Pass-07

还是黑名单,但是没有对后缀名进行去.处理,利用windows特性,会自动去掉后缀名中最后的.,可在后缀名中加.绕过
image.png

Pass-08

Windows系统下,如果上传的文件名中test.php::$DATA会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析
::$DATA(Windows文件流绕过),上传php文件,把文件名后缀改.php::$DATA
image.png

Pass-09

构造复杂后缀名来绕过
image.png

Pass-10

双写文件名后缀绕过
image.png

Pass-11

0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符。系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。
上传文件保存路径可以控制,使用%00截断字符串来控制文件名

截断条件:php版本小于5.3.4,php的magic_quotes_gpc为OFF状态

image.png

Pass-12

和十一关不同的是这次的save_path是通过POST传进来的,还是利用00截断,但这次需要在二进制中进行修改,因为POST不会像GET对%00进行自动解码
image.png
因为程序中检测的是文件的后缀名,如果后缀合法则拼接路径和文件名。那么,攻击者修改了path以后的拼接结为:upload/shell.php%00/shell.jpg,移动文件的时候会将文件保存为:upload/shell.php,从而达到Getshell效果。

Pass-13

图片马绕过
image.png
将图片上传,直接访问图片并不能把图片当做PHP解析,因此还需要利用文件包含漏洞
image.png

Pass-14

同上

Pass-15

同上

Pass-16

这里进行了二次渲染,不过二次渲染会保留一些文件内容不会改变,所以在制作图片马之前,我们先观察二次渲染前后图片不会改变的地方,将其代码写入其中即可绕过二次渲染
image.png
最后,进行二次渲染的时候最好用gif文件,因为gif文件在渲染前后有大部分的没有变化,容易找到前后没有变化的部分,png的二次渲染的绕过并不能像gif那样简单

Pass-17

$temp_file = $_FILES['upload_file']['tmp_name'];//存储在服务器的文件的临时副本的名称

当我们上传webshell文件时,不会先限制php类型文件上传,先利用上面的语句把上传的文件临时存放。再执行下面的if语句进行文件类型的限制和文件名的时间戳。然后执行if(move_uploaded_file($temp_file, $upload_file))//移动到新文件夹
绕过思路是利用代码执行过程有耗费时间的过程,临时webshell文件保存的极短时间,去访问webshell,获取一些信息

Pass-18

本关对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞,可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功

Pass-19

存在00截断,上传图片马,通过保存的文件名做00截断

Pass-20

数组绕过

posted @ 2024-04-29 16:09  NoCirc1e  阅读(14)  评论(0编辑  收藏  举报