Upload-Labs渗透笔记

靶机项目地址:https://github.com/c0ny1/upload-labsphp


Pass-01

1.直接上传php一句话,报错html

 

 

 

2.信息回显速度很快,猜测是前端验证,能够在修改前端代码,删掉checkFile()函数,或者上传jpg后缀经过burp抓包修改php后缀绕过前端验证前端

 

 

 

3.上传成功git

 

 

 

4.菜刀链接成功github

 

 

 

5.分析源码web

 

Javascript前端语言定义函数,仅在前端判断文件的后缀。shell

 


 

Pass-02

1.直接上传,发现提示文件类型不正确apache

 

 

 

2.抓包修改文件类型,改为image/jpegwindows

 

 

 

3.改为image/jpeg浏览器

 

 

4.发包,上传成功

 

 

 

 

5.菜刀链接成功

 

 

 

 

6.分析源码

 

仅这条if语句判断了上传文件的类型,修改Content-Type便可绕过。

 

 


 

Pass-03

1.直接上传,提示

 

 

 

 

2.猜测多是黑名单限制,利用其它后缀名进行绕过php3phtml

 

 

 

 

3.上传成功,菜刀链接成功

 

 

 

 

4.分析源码

 

创建了个黑名单,其中的后缀都不能上传。可是其它可解析php的后缀能够上传并解析。

 


 

Pass-04

1.直接上传,提示

 

 

 

 

2.尝试利用apache解析漏洞,apache读取后缀从右向左,若碰见不认识的后缀名便向前继续读取,直到认识的后缀。

 

 

 

 

3.上传成功,链接菜刀成功

 

 

 

 

4.方法二其实这关考察的目的是 .htaccess文件,上传一个.htaccess内容以下的文件:

SetHandler application/x-httpd-php

 

 

 

 

5.这样全部文件都会解析为php,而后再上传图片马,就能够解析:

 

 

 

 

6.链接菜刀成功

 

 

 

 

7.分析源码

 

这里把全部的后缀都过滤了,除了.htaccess,因此能够利用上传.htaccess规则来进行绕过,把能够上传的文件后缀解析成php

 


 

Pass-05

1.直接上传,提示

 

 

 

 

2.上传.htaccess失败,可能也把.htaccess给过滤了,尝试使用apache解析漏洞绕过

 

 

 

 

3.链接菜刀成功

 

 

 

 

4.其实这题考察的是大小写绕过,

 

 

 

 

5.分析源码

 

在上一题pass-04的基础上多了个过滤.htaccess,可是没有对后缀的大小写进行统一,这里因而能够经过大小写绕过

 


 

Pass-06

1.直接上传失败,加空格绕过

 

 

 

 

2.上传成功

 

 

 

 

3.菜刀链接成功

 

 

 

 

4.源码分析

 

仍是黑名单,可是没有对后缀名进行去空处理,可在后缀名中加空绕过

 


 

Pass-07

1.尝试利用windows特性,会自动去掉后缀名中最后的 . ,抓包,在后缀加 .

 

 

 

 

2.上传成功

 

 

 

 

3.链接菜刀成功

 

 

 

 

4.分析源码

 

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

 


 

Pass-08

1.尝试使用 ::$DATA 加在后缀以后进行绕过

 

 

 

 

2.上传成功

 

 

 

 

3.链接菜刀成功

 

 

 

 

4.分析源码

 

phpwindow的时候若是文件名+"::$DATA"会把::$DATA以后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"以前的文件名目的就是不检查后缀名

 


 

Pass-09

1.经过尝试构造,加上点空格点绕过

 

 

 

 

2.上传成功

 

 

 

 

3.链接菜刀成功

 

 

 

 

4.分析源码

 

仍是黑名单过滤,并删掉了文件名末尾的点,路径拼接的是处理后的文件名经过构造 +空格+ 绕过过滤。

 


 

Pass-10

1.直接上传发现把后缀php替换为空

 

 

 

 

2.这样能够使用双写绕过

 

 

 

 

3.上传成功

 

 

 

 

4.链接菜刀成功

 

 

 

 

5.分析源码

 

设置黑名单,把有问题的后缀名都替换为空,可是能够利用双写绕过。

 


 

Pass-11

1.直接上传,提示

 

 

 

 

2.应该是用到了白名单,抓包查看,尝试使用%00截断进行绕过

 

 

 

 

3.上传成功

 

 

 

 

4.菜刀链接成功

 

 

 

 

5.分析源码

 

 

 

 

白名单机制,可是$img_path直接拼接,所以能够利用%00截断绕过

 


 

Pass-12

1.上传抓包查看,能够使用00截断,php后空格十六进制的20改成00

 

 

 

 

2.上传成功

 

 

 

 

3.菜刀链接成功

 

 

 

 

4.源码分析

 

一样是白名单,此次的save_path是经过post传进来的,仍是利用00截断,但此次须要在二进制中进行修改,由于post不会像get%00进行自动解码

 


 

Pass-13

1.制做图片马,copy 1.jpg /b + shell.php /a webshell.jpg

 

 

 

 

2.上传图片马

 

 

 

 

3.上传成功

 

 

 

 

4.分析源码

 

经过读文件的前2个字节判断文件类型,所以直接上传图片马便可。也能够在一句话文件内容前面加图片的标识例如GIF89a。

 


 

Pass-14

1.一样直接上传图片马

 

 

 

 

2.上传成功

 

 

 

 

3.分析源码

 

这里使用getimagesize函数获取文件类型仍是直接就能够利用图片马就可进行绕过。也能够在一句话文件前加图片标识码例如GIF89a。

 


 

Pass-15

1.一样能够使用图片立刻传

 

 

 

 

2.上传成功

 

 

 

 

3.源码分析

 

这里是用php_exif模块来判断文件类型,仍是直接就能够利用图片马就可进行绕过

 


 

Pass-16

1.直接上传图片马

 

 

 

 

2.成功上传

 

 

 

 

3.分析源码

 

 

 

 

综合判断了后缀名、content-type,以及利用imagecreatefrompng

判断是否为png图片,最后再作了一次二次渲染

 


 

Pass-17

1.提示代码审计,因此先分析下源码

 

这里先将文件上传到服务器,而后判断文件后缀是否在白名单里,若是在则重命名,不然删除,所以咱们能够上传1.php只须要在它删除以前访问便可,能够利用burpintruder模块不断上传,而后咱们不断的访问刷新该地址便可

 

2.抓包转到intruder模块,进行不断上传

 

 

 

 

3.在不断上传的中,不停刷新浏览器地址,便可访问到文件内容

 

 

 

 


 

Pass-18

1.经过代码审计,这个对文件后缀名作了白名单判断,而后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件从新命名,一样存在条件竞争的漏洞。能够不断利用burp发送上传图片马的数据包,因为条件竞争,程序会出现来不及rename的问题,从而上传成功

 

 

 

 

2.经过条件竞争,图片马来不及更名就上传了

 

 

 

 

3.用文件包含查看文件

 

 

 

 


 

Pass-19

1.源码审计,发现move_uploaded_file()函数中的img_path是由post参数save_name控制的,所以能够在save_name利用00截断绕过

 

 

 

 

2.上传成功

 

 

 

 

3.文件执行成功

 

 

 

 


 

Pass-20

1.代码审计

 

 

 

 

2.经过上传一个php文件,改包

 

 

 

 


 

完。

相关文章
相关标签/搜索