Upload-labs通关指南(上) 1-10
文件上传漏洞
一些网站存在文件上传接口,一旦存在这个接口就有可能存在漏洞。
文件上传漏洞的逻辑是将一个webshell上传到服务器,服务器对它进行本地化存储并解析。
那么我们只要获知上传文件的路径就可以对整个网站甚至是服务器进行控制。
本次实验使用的靶场环境是Upload labs, github项目地址
环境:php 5.2.17
Pass-1
我们直接上传一个phpinfo测试一下,发现立刻就显示如下信息
1 | 该文件不允许上传,请上传.jpg|.png|.gif类型的文件,当前文件类型为:.php |
怀疑是js拦截。将js禁用后成功上传
Pass-2
仍然上传一个.php的webshell提示文件类型不正确,使用burp抓包并修改文件类型
1 | -application/octet-stream |
Pass-3
waf拦截提示
1 | 不允许上传.asp,.aspx,.php,.jsp后缀文件! |
抓包尝试修改后缀为php3,php4,php5,pht,phtm,phtml绕过
Pass-4
测试后发现仅提示此文件不允许上传,并且修改后缀、修改文件类型均无效
上传.htaccess文件并写入如下内容
1 | <FilesMatch "haha"> |
然后在上传一个带有”haha”字样的任意后缀的webshell即可
.htaccess文件是php的解析文件,根据文件写的规则,会把相应的东西当作php来执行
此题中所有文件名中包含“haha”字样(后缀)的文件都当作php来执行
Pass-5
本题旨在让我们使用文件包含配合文件上传进行一个配合攻击
原理图如下:
因此我们可以抓包并修改后缀为jpg,利用文件包含将其以php执行
1 | http://localhost/include.php?file=./upload/haha.jpg |
Pass-6
由于此靶场是搭建与windows上,而windows对于后缀大小写不敏感,linux对大小写敏感
可以直接抓包修改后驻为phP绕过
Pass-7
此题提示为“禁止上传所有可解析的后缀”,又根据windows特性,后缀后的空格不解析,因此直接抓包修改后缀加空格绕过。
Pass-8
后缀加.绕过
Pass-9
::$DATA是windows的NTFS文件系统中的默认属性
上传xxx.php::$DATA
意思是让windows请求自己
Pass-10
可以使用burp抓包,第一次上传文件名xxx.php:.jpg
此时会生成一个空的xxx.php文件
第二次上传文件名xxx.>>>
此时会在空文件中写入你的代码