准备:
一句话木马:<? php @eval($_REQUEST[cmd]); ?)>
格式:写入txt文本重命名后缀问.php /.php 格式,看具体要求上传。
Pass-01:
显示页面源代码,发现是js对不合法文件进行检查,上传修改为.jpg的php文件直接修改后缀名为.php,使用burpsuite工具抓包,再将jpg改为php,然后点击Forward即可完成上传
Pass-02:
上传一个1.php文件,用burp抓包。抓包后修改可上传文件类型,成功上传文件.
Pass-03:
显示页面源代码,黑名单验证,禁止上传.asp,.aspx,.php.jsp后缀的文件,我们可以php上传一个名为1.php5的文件,发现直接上传成功。
Pass-04:
显示页面源代码,黑名单验证增多,先上传一个.png文件,然后上传.htaccess后缀文件(内容:<IfModule mime_module>
AddHandler php5-script .gif
SetHandler application/x-httpd-php
</IfModule> ->把上传的png文件当成php5文件进行解读),再访问.png。
Pass-05:
显示页面源代码,发现可以用php. .绕过上传。
Pass-06:
显示页面源代码,发现这关有转换大小写的代码,可以上传大小写混合的后缀名来进行绕过。
Pass-07:
显示页面源代码, 发现有收尾去空,会去掉文件前后面加上的空格,但windows特性,文件名后空格会被直接删除,不能直接上传.php后加空格,所以我们要用burp抓包然后再添加空格。
Pass-08:
显示页面源代码,对比第四关,发现少了删除文件末尾的点一样使用burp抓包然后后缀加一个点,和第六关一样,windows文件后缀名不能加'.'所以我们要用burp抓包然后再添加点。
Pass-09:
显示页面源代码,发现有去除字符串,和前面关卡一样,在burp中抓包在文件名后加::$DATA。
Pass-10:
显示页面源代码,发现没有循环验证,也就是说转换大小写去除空格什么的它只验证一次,所以把后缀改为.phP. . ,直接开始实验,上传一个1.php抓包。
Pass-11:
显示页面源代码,黑名单验证,意思是如果上传了它这些后缀的文件,就会把后缀名删除所以我们只需要把后缀改为.pphphp,它删除掉中间的php后缀仍然为php。
Pass-12:
显示页面源代码,白名单绕过满足条件后先上传一个.png文件开始抓包,需要使用%00截断。
前置条件:
php版本小于5.3.4 ->无法下载
php_ini文件中的magic_quotes_gpc处于off状态。
步骤:
此电脑:phpstudy/www上方搜索php_ini
文档打开-查找-magic_quotes_gpc,on->off
Pass-13:
显示页面源代码,白名单绕过满足条件后先上传一个.png文件开始抓包,需要使用%00截断。
只是post请求不能自动编码%00,需要手动编码。
Pass-14:
上传图片马
到服务器
显示页面源代码:只验证头部信息,只读2字节
图片码制作:直接页面截图,重命名为.txt文件,打开文件,将一句话木马黏贴进去,再进行重命名为3.png文件。
上传3.png文件,复制图像链接(http://upload-labs-master/upload/2720240909120007.png)构造使用include文件包含漏洞访问:http://upload-labs-master/include.php?file=upload/2720240909120007.png得到php解析。
注:有些浏览器对一句话木马敏感,不进行解析,需要把一句话木马换成无危害性的php输出函数:<?php phpinfo(); ?>
Pass-15:
显示页面源代码:
引入getimagesize函数对文件名前两位进行检查。
实质上与Pass-14 的只验证头部信息,只读2字节含义相同,做法也相同。
Pass-16:
显示页面源代码:
前置条件:
1.php>5.3
2.需要开启php_ini的allow_url_fopen模块 ->allow_url_fopen=On
3.需要开启php_exif模块
重启apache与mysql
接下来做法与上一关相同: