文件上传 —— 靶场upload-labs-master

链接:https://pan.baidu.com/s/1I7nwmMdt9XB2AbcYQJ3_eA
提取码:1234

简介:个人学习记录

目录

一、前端js验证

二、mime类型绕过

三、黑名单绕过

四、.htaccess文件配置文件漏洞,无过滤

五、考查 .user.ini文件

六、大小写

七、trim()去空操作

八、winous特性,以.结尾无效

九、::$data

十、一次过滤没有循环

十一、这一关进行了过滤php字符串

十二、%00截断:url 的终止符

十三、post %00截断

十四、文件包含漏洞+图片马上传(只对图片的文件头进行了检测,可以只保留文件头)

十五、文件包含漏洞+图片马上传

十六、文件包含漏洞+图片马上传

十七、二次渲染

十八、逻辑漏洞+文件竞争

十九、图片马和文件包含漏洞

二十、截取数据包​

二十一、数组和文件上传检测的结合


一、前端js验证

第一关主要前端的JavaScript验证,两种绕过方式

1.关闭JavaScript,但是在真实情况下,可能造成页面布局和显示问题等等

2.第二个是将页面源代码保存到本地保存为html格式,删除JavaScript那部分验证代码,然后

在提交表单(form)里,将action="绝对地址"添加后再访问,然后提交.php型的文件。

二、mime类型绕过

mime类型:

媒体类型(通常称为 Multipurpose Internet Mail Extensions  MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。

 用burp抓包,然后修改

 改为image/jpeg

即可成功上传。

三、黑名单绕过

试着上传

黑名单验证,但是它不全,我们可以上传一个后缀名为 .php3 .php5 .phtml 的后门文件

(在apache中对于phtml的解析没有开启,在httpd.conf中开启即可)

在用菜刀连接

四、.htaccess文件配置文件漏洞,无过滤

适用条件:

php版本处于5.6以下

没有开启nts

1.制作一个图片木马

2.首先要有一个php文件里面写入

<?php

phpinfo?> 

3.dos下创建命令
 copy 1.jpg /b+shell.php /a phpinfo.jpg

4./a和/b是啥

(1)/a
就是把文件内容以ASCII编码方式进行处理。
copy /a file1.txt+file2.txt+file3.txt newfile.txt
把file1.txt,file2.txt和file3.txt,以ASCII编码方式合并为newfile.txt这个文件。这个最终的文件中就包含了前面三个文件的内容。

(2)/b
如果一个图片文件是1.jpg,一个文本文件是2.txt,可以用如下命令
copy /b 1.jpg+2.txt 3.jpg
这样就把2.txt加到1.jpg的结尾生成了新文件。

5.上传一个.htaccess文件

文件里面写入

AddType  application/x-httpd-php    .png .jpeg

6.之后上传木马图片

可以执行

五、考查 .user.ini文件

注意:apache中间件是无法正确执行的。我们在phpstudy改为nginx

建立一个 .user.ini文件,写入

auto_prepend_file=phpinfo.png

然后上传

之后再上传一个图片木马

执行readme.php即可执行出图片木马中的代码

六、大小写

在burp中截取请求数据包

然后将.php中改成大写

注意:此方法只适用于windous,而linux是区分大小写的,不能正常执行

七、trim()去空操作

没有首尾去空  trim()

burp抓包首尾加个空格即可

八、winous特性,以.结尾无效

在数据包尾部加.

代码中缺少

$file_name = deldot($file_name);//删除文件名末尾的点

九、::$data

::$data的作用是将webshell.php当做字符流处理,所以对其后缀名检测不成功。

这一关没有::$data的过滤代码

加上::$data

十、一次过滤没有循环

抓包

. .进行过滤

十一、这一关进行了过滤php字符串

这样写来绕过过滤php

在中间插入一个他所过滤的就可以

也可以是phtmlhp

十二、%00截断:url 的终止符

前提条件:php版本小于等于5.3.4 并且魔术引号(magic_quotes_gpc)需要关闭

然后修改上传路径,并且修改文件后缀名躲过检测

十三、post %00截断

这个依旧是用%00截断,并且更改上传路径。但是这里是post方法,因为post提交的参数里不能自己解码,所以需要将其解码写入

十四、文件包含漏洞+图片马上传(只对图片的文件头进行了检测,可以只保留文件头)

1.制作一个图片马,可以用命令,可以直接打开图片制作 列如:

 2.这里需要在upload下创建一个文件包含文件include.php 写入(用来测试上传的图片马)

<?php
    $file= $_GET['file'];
    include($file);
?>

 访问包含文件并且写入参数 图片马名(随机数+时间戳+后缀名),成功执行。

十五、文件包含漏洞+图片马上传

dos下制作图片马

上传后点击文件包含漏洞 来访问同一级目录upload下的上传文件

十六、文件包含漏洞+图片马上传

和上边类同

前提条件:要开启一个php.ini的配置

箭头指的地方 ; 删掉

而且还会出现黑屏的情况,查资料

重启phpstudy,删除upload再新建一个upload(有效)

十七、二次渲染

二次渲染:我们上传的图片由于大小等原因,网站对我们的图片进行了二次渲染,生成了一个新的图片,所以我们构造的图片码中的webshell语句没了。

这关实在有点难搞,上传gif比较好搞一点

1.制作gif图片马后上传,保存上传的图片到本地与制作的图片马做对比

在蓝色部分匹配处插入<?php phpinfo() ?>后,再次上传后

利用文件包含漏洞执行。

十八、逻辑漏洞+文件竞争

先移动到了$upload_file下,再进行的后缀名检测

所以可以利用这个语句,在上传文件后检测前:立即执行此文件,在当前文件夹下创建一个webshell.php

构造一个文件phpinfo.php,如下:

<?php fputs(fopen('webshell.php','w'),'<?php phpinfo() ?>');?>

1.首先截取上传webshell的request数据包发送到inturter

2.在截取一个不断请求upload下我们上传的webshell的数据包,这里上传的是phpinfo.php

3.在inturter界面清除掉所有payload标记

4.分别对两个页面进行payloads设置(两个请求设置相同即可)

(1)设置请求数目,payload类型

(2)设置一个大点的线程(options里面)

5.start attack

成功实现上传一个webshell.php

十九、图片马和文件包含漏洞

 (这关应该也是文件竞争,但属实不太明白,只能上传图片马,用文件包含漏洞)

二十、截取数据包

将upload-19.jpg改为.php.或者加个空格都行

二十一、数组和文件上传检测的结合

1.更改mime类型

2.数组save_name分为三部分,save_name[0]是用于最后的命名。save_name[2]进行比对检测

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅_花_七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值