upload-labs通关笔记


upload-labs通关笔记

img

pass-1

mypayload,抓包绕过

只在前端js文件中写了过滤

通过抓包绕过白名单

image-20210513152712152

上传木马成功

使用蚁剑链接

image-20210513152933069

post传参

image-20210513163952467

得到数据,成功

通关

wp,取消前端js文件验证

浏览器可以禁用js的方法,

在火狐浏览器里,访问url:about:config

搜索javascript.enabled

将true改成false

在谷歌浏览器中,只需打开设置,禁止使用JavaScript即可

image-20210513160928950

无论多么强大的js,都会在这里一键禁用

wp,前端手动写入允许php文件通过

前端的html,js内容可以在页面上进行更改,所以只需在浏览器页面前端添加php文件白名单即可

pass-2

mypayoad,抓包绕过

提示是:本pass在服务端对数据包的MIME进行检查!

和第一关一样,抓包就可以绕

mime详解

简单来说,网站检测上传的mime信息

在这里插入图片描述

直接发送内含木马的jpg文件相当于除了内容都和jpg一致,Content-Type自然是jpg文件

image-20210513155924161

pass-3

mypayload,漏网之鱼.phtml

根据提示,pass3为黑名单过滤

image-20210513180022279

只过滤了四种文件后缀,存在漏网之鱼

.phtml

  • php后缀

    php文件使用一般有三种情况

    1、单纯的使用php代码,后缀为.php

    2、单纯使用html,后缀为,html

    3、使用html并且嵌套php,后缀使用.php或者.phtml均可

pass3没有对html文件和phtml文件进行过滤,所以可以上传这两种文件绕过黑名单

image-20210513180701293

wp,漏网之鱼.php3

同上,.php3的文件也可以执行php

pass-4

mypayload,.htaccess配置文件执行

这关过滤的很死,基本不存在直接上传php文件的可能

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

htaccess文件用于apache服务器

htaccess文件可以定义文件解析的方式,可以规定解析特定的文件格式,如定义将jpg文件中符合PHP规则的文件解析为php

为了方便起见,我设置所有文件中符合php规则的都会被执行

SetHandler application/x-httpd-php

上传后再上传=一句话

image-20210513203300081

pass-5

mypayload,后缀字母大小写绕过

大意了大意了,之前顺手命名为shell.PhP,一下就传上去了

后缀名大小写即可

image-20210513205849351

看代码才知道,它把大小写过滤去掉了

image-20210513205947144

image-20210513210025401

pass-6

mypayload,后缀空格绕过

这关没什么思路,看了源码发现没有首尾去空,所以抓包再后缀名后加空格

但上传文件后报错404,看了wp,发现我思路没错

后来在一个师傅的博客里找到了答案

image-20210514172103326

基于windows。。。

换windows靶机,执行成功

image-20210514171714656

win系统会把后缀后的空格自动消除,而网页上传的空格会解析为url编码,从而使黑名单无法匹配文件后缀名,产生绕过

上传成功后win系统自动消除后缀后的空格,使我们可以正常的使用文件中的代码

pass-7

mypayload,后缀加点绕过黑名单

看源码,没有过滤后缀名后的点

抓包,shell.php.

上传

成功

image-20210514173558631

原理同pass-6,不过pass-7的原理为:win系统会自动消除后缀后的没有其他字符的点

例如:1.php………. 会变为1.php 按php文件解析

​ 1.php………jpg 点不会消除,会当作jpg文件解析

这么做大概是为了防止未知后缀错误

pass-8

mypayload,后缀加::$DATA绕过检测

在php+Windows的情况下:如果文件名+”::$DATA” 会把 “::$DATA”之后的数据当成文件流处理,不会检测后缀名且保持”::$DATA”之前的文件名

pass-8取消了对::$DATA的检测

只需抓包改后缀为php::$DATA即可,此方法同样基于windows,不适用linux

pass-9

mypayload,代码漏洞

pass-9中第15行代码保存时连接的不是最后一行处理的数据,造成漏洞

image-20210514202915072

所以构造后缀:php. . [php(点,空格,点)]

pass-10

mypayload,后缀双写绕过

提示:本pass会从文件名中去除.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf|.htaccess字符!

看到去除,我第一时间想到了双写绕过

shell.pphphp

去除中间php后刚好再次构成php

image-20210514214309158

成功

pass-11

wp,%00截断,GET传参

不会做,看了wp

重点注意!!

需要两个条件:php版本小于5.3.4;php的magic_quotes_gpc为OFF状态

我就是ON状态一直没做出来

上传,发现get有路径,使用%00截断

image-20210515182822261

这样就可以造成一个含有.php的路径

image-20210515183055922

$file_ext 截取文件的后缀名进行检查
$img_path 设置路径时定义了保存的命名方式

只要我们在$_GET处使用%00截断,就可以得到一个php后缀的文件

而白名单的检测仍是jpg文件

image-20210515185040744

相当于网站自己把jpg文件保存并重命名未php文件

pass-12

wp,%00截断,POST传参

image-20210515200249282

这里我自己做一直没成功,看了wp才想起来,get传参会将特殊符号转化成url编码,并在传给变量时自动解码,post传参没有解码url一说

所以在截断时我们需要自己解码,解码后是个空值

不要直接使用空格,空格是%20(应该没人这么憨)

image-20210515201425688

0x00/%00截断原理

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

php 00截断

php版本要小于5.3.4,5.3.4及以上已经修复该问题

magic_quotes_gpc需要为OFF状态

include和require一般在网站内部读取文件

file_get_contents一般用于打开一个url或一个文件

file_exists判断文件是否存在

pass-13

mypayload&&wp,上传图片马

上传图片马

制作方法:

准备一张任意的图片,一个一句话木马文件

打开cmd

输入:

copy 1.jpg/b+shell.php myshell.jpg

图片马有制作失败的可能,这是由于图片本身的问题,为了尽可能的规避问题,除了可以将一句话文件改为无法显示的jpg外,可以寻炸能够制作木马的图片,图片内存越小,成功率越高

php文件首行最好添加一些无用字符,防止copy后出现未知错误

image-20210516100647057

pass-14

mypayload,图片马利用,文件包含

直接包含上传的图片马即可,这里可以检测图片马有没有制作成功

image-20210516103341356

pass-15

靶场炸了

pass-16

二次渲染绕过,奈何我绕了好半天都过不去,先放放

pass-17

mypayload ,条件竞争

条件竞争

审代码,本关是先保存到本地,然后检查,如果是白名单内文件就保存,不是就删除,可这其中有个删除的时间差

大量发包非白名单的文件,然后再服务器没有删除之前访问,就叫做条件竞争

上传shell.php,burp抓包,发送爆破模块

image-20210516155951818

数值爆破一万次,爆破的同时访问

image-20210516160042058

成功

pass-18

wp,条件竞争

同pass-17为条件竞争,但本关的逻辑是先检查后缀,检查后保存,然后重命名

所以我们可以上传一个图片马,然后使用条件竞争让服务端来不及改名

image-20210516215809838

这时如果有文件包含漏洞,就可以执行命令


文章作者: Atmujie
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Atmujie !
评论
  目录