upload-labs(文件上传练习)

【upload-lab-Pass-01】–前端js绕过
①验证是否能正常上传图片,成功

upload-labs(文件上传练习)_第1张图片

②上传phpinfo.php文件不成功
upload-labs(文件上传练习)_第2张图片

③使用burpsuit抓包,发现抓不到任何东西,查看源码,发现有一段js代码,只允许上传.jpg|.png|.gif文件,其他后缀的文件全都被过滤
upload-labs(文件上传练习)_第3张图片

④在火狐浏览器中下载js插件并开启,可以禁用js代码功能

upload-labs(文件上传练习)_第4张图片
upload-labs(文件上传练习)_第5张图片

⑤再次上传phpinfo.php文件,成功上传,右键点击复制图像地址,在浏览器访问,成功
upload-labs(文件上传练习)_第6张图片
upload-labs(文件上传练习)_第7张图片
【upload-lab-Pass-02】–MIME验证

①验证是否能正常上传图片,成功
upload-labs(文件上传练习)_第8张图片

②上传phpinfo.php文件不成功
upload-labs(文件上传练习)_第9张图片

③使用burpsuit抓包,发送到Repeater

upload-labs(文件上传练习)_第10张图片

④将Content-Type的内容改为:image/jpeg,在proxy模块点击forward,让这个包通过,回到浏览器页面发现.php文件上传成功

upload-labs(文件上传练习)_第11张图片
upload-labs(文件上传练习)_第12张图片
upload-labs(文件上传练习)_第13张图片
【upload-lab-Pass-03】–黑名单绕过,特殊后缀

①验证是否能正常上传图片,成功

②上传phpinfo.php文件不成功,提示不允许上传.asp,.aspx,.php,.jsp后缀文件
upload-labs(文件上传练习)_第14张图片

③将php文件后缀改成php3,php4,php5,pht,phtml,phps都是可以被解析成php文件执行,这里将phpinfo.php改成phpinfo.php3,文件成功上传并被解析

upload-labs(文件上传练习)_第15张图片
upload-labs(文件上传练习)_第16张图片
【upload-lab-Pass-04】–黑名单绕过–.htaccess
①验证发现正常上传图片成功,上传phpinfo.php文件失败,查看提示发现有很多种类型后缀都不允许上传
upload-labs(文件上传练习)_第17张图片

upload-labs(文件上传练习)_第18张图片

②将phpinfo.php重命名为phpinfo.png,发现上传成功,但是无法正常解析
upload-labs(文件上传练习)_第19张图片在这里插入图片描述

③上传.htaccess文件,.htaccess文件是一个分布式配置文件,提供了针对目录改变配置的方法,即在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。.htaccess内容为:

SetHandler application/x-httpd-php

up是能够上传的文件名

upload-labs(文件上传练习)_第20张图片upload-labs(文件上传练习)_第21张图片

④将phpinfo.jpg重命名为up.png,可以成功上传,同时可以正常解析

upload-labs(文件上传练习)_第22张图片
【upload-lab-Pass-05】–黑名单验证-.user.ini.

①验证发现正常上传图片成功,上传phpinfo.php文件失败
upload-labs(文件上传练习)_第23张图片

②使用使用上面的黑名单绕过方面都不成功,所以上传一个.user.ini文件,我们都知道php.ini是php默认的配置文件,其中包括了很多php的配置,而.user.ini实际上就是一个可以由用户“自定义”的php.ini,内容为:
auto_prepend_file=1.gif
意思是:所有的php文件都自动包含1.gif文件

upload-labs(文件上传练习)_第24张图片

③上传.user.ini文件,将phpinfo.php重命名为1.gif并上传,
upload-labs(文件上传练习)_第25张图片upload-labs(文件上传练习)_第26张图片

④然后我们在upload-labs靶机的upload目录下可以看到刚才上传的文件.user.ini文件和phpinfo.php,同时还有一个文件readme.php
在这里插入图片描述

⑤我们访问readme.php,成功
upload-labs(文件上传练习)_第27张图片
【upload-lab-Pass-06】–黑名单验证-大小写绕过

①验证发现正常上传图片成功,上传phpinfo.php文件失败,多种后缀不允许上传[
upload-labs(文件上传练习)_第28张图片upload-labs(文件上传练习)_第29张图片

②将phpinfo.php后缀直接改成不在黑名单里的后缀,如.Php,上传成功
upload-labs(文件上传练习)_第30张图片
upload-labs(文件上传练习)_第31张图片
upload-labs(文件上传练习)_第32张图片
【upload-lab-Pass-07】–黑名单验证–空格绕过

①验证发现正常上传图片成功,上传phpinfo.php文件失败,多种后缀不允许上传
upload-labs(文件上传练习)_第33张图片

②开启burpsuit抓包,直接在文件名后面增加一个空格,点击forward,回到浏览器发现上传成功

在这里插入图片描述

【upload-lab-Pass-08】–黑名单验证–点号绕过

①验证发现正常上传图片成功,上传phpinfo.php文件失败
upload-labs(文件上传练习)_第34张图片

②开启burpsuit抓包,直接在文件名后面增加一个” . ”,点击forward,回到浏览器发现上传成功
在这里插入图片描述
【upload-lab-Pass-09】–黑名单验证–特殊字符::$DATA绕过

①验证发现正常上传图片成功,上传phpinfo.php文件失败
upload-labs(文件上传练习)_第35张图片

②开启burpsuit抓包,直接在文件名后面增加一个”:: D A T A ” , 点 击 f o r w a r d , 回 到 浏 览 器 发 现 上 传 成 功 这 道 题 利 用 的 是 W i n d o w s 下 N T F S 文 件 系 统 的 一 个 特 性 , 即 N T F S 文 件 系 统 的 存 储 数 据 流 的 一 个 属 性 D A T A , 当 我 们 访 问 a . a s p : : D A T A 时 , 就 是 请 求 a . a s p 本 身 的 数 据 , 如 果 a . a s p 还 包 含 了 其 他 的 数 据 流 。 比 如 a . a s p : l a k e 2. a s p , 请 求 a . a s p : l a k e 2. a s p : : DATA”,点击forward,回到浏览器发现上传成功 这道题利用的是Windows下NTFS文件系统的一个特性,即NTFS文件系统的存储数据流的一个属性 DATA,当我们访问 a.asp::DATA 时,就是请求 a.asp 本身的数据,如果a.asp 还包含了其他的数据流。比如 a.asp:lake2.asp,请求 a.asp:lake2.asp:: DATAforwardWindowsNTFSNTFSDATA访a.asp::DATAa.aspa.aspa.asp:lake2.aspa.asp:lake2.asp::DATA,则是请求a.asp中的流数据lake2.asp的流数据内容。
PS:复制图像地址访问时,会附带::$DATA,要去掉后再连接,否则找不到文件

upload-labs(文件上传练习)_第36张图片
upload-labs(文件上传练习)_第37张图片
【upload-lab-Pass-10】–黑名单验证–“. .”绕过

①验证发现正常上传图片成功,上传phpinfo.php文件失败

upload-labs(文件上传练习)_第38张图片

②查看源码后,发现只处理文件名末尾的点。

upload-labs(文件上传练习)_第39张图片

③开启burpsuit抓包,直接在文件名后面增加一个”. .”(点-空格-点),点击forward,回到浏览器发现上传成功
upload-labs(文件上传练习)_第40张图片
【upload-lab-Pass-11】–黑名单验证–双写绕过

①验证发现正常上传图片成功,上传phpinfo.php文件失败
upload-labs(文件上传练习)_第41张图片

②开启burpsuit抓包,在文件名后缀增加一个php,不过要注意插入的位置,点击forward,回到浏览器发现上传成功

在这里插入图片描述
upload-labs(文件上传练习)_第42张图片

【upload-lab-Pass-12】–白名单验证–0x00截断

①验证发现正常上传图片成功,上传phpinfo.php文件失败

upload-labs(文件上传练习)_第43张图片

②开启burpsuit抓包,发送到repeater模块,修改URL,在/upload/后面增加“phpinfo.php%00”,同时修改文件后缀为“png”,Content-Type修改成: image/png点击forward,回到浏览器发现上传成功
条件:php版本<5.3.4;magic_quotes_gpc=off
原理:php的一些函数的底层是C语言,而move_uploaded_file就是其中之一,遇到0x00会截断,0x表示16进制,URL中%00解码成16进制就是0x00。
upload-labs(文件上传练习)_第44张图片

【upload-lab-Pass-13】
①验证发现正常上传图片成功,上传1.php文件失败
upload-labs(文件上传练习)_第45张图片

②查看源码,发现使用POST传地址,POST不会对里面的数据自动解码,需要在Hex中修改。开启burpsuit抓包,
在这里插入图片描述

③修改文件后缀为png,修改Content-Type,同时在upload后添加1.php,点击HEX找到增加的1.php位置,将p后的0d修改为00后放包上传,上传成功
upload-labs(文件上传练习)_第46张图片
在这里插入图片描述

在这里插入图片描述

【upload-lab-Pass-14】

【upload-lab-Pass-15】

【upload-lab-Pass-16】

【upload-lab-Pass-17】

【upload-lab-Pass-18】

【upload-lab-Pass-19】

【upload-lab-Pass-20】

【upload-lab-Pass-21】

你可能感兴趣的:(upload-labs(文件上传练习))