upload-labs靶场1-19关秒杀攻略

Pass-01

      打开第一关,我们先上传一个jpg文件看看这个文件上传功能正不正常

     

发现可以正常上传,并且访问这个图片也能正常访问,然后我们尝试上传php文件,发现弹出个警告,不让上传

      我们上传php时开启抓包,发现抓不到数据包,说明这个上传的数据是在前端进行判断。我们将php文件后缀改为jpg上传,然后开启抓包,发现成功抓到数据包

      然后将数据信息中的文件后缀名改为php后放行数据包

      发现成功上传  

      然后我们用蚁剑连接(php文件中放着一句话木马),连接成功

Pass-02

      这一关与第一关差不多,第一关中是前端直接检测文件后缀名,第二关是到后端检测文件类型,所以这关我们直接上传php文件然后进行抓包

      这一次,我们要修改文件的类型,所以要修改content-type这一行,改为任意的图片后缀,我这里修改为image/png

      然后放行点击上传,发现成功上传

Pass-03

      这一关与前面相同,只需要在抓包中把php改为php5或者php3等就可以了(根据系统不同,有的可能运行不了)

      需要修改配置文件httpd.conf,在大概465行加入AddType application/x-httpd-php .php .phtml .php5 .php3,这里是设定了可以将后缀为php3,php5等文件也当作php文件执行

      改为php3(或者5)之后直接放行就可以上传成功,然后进行访问了

Pass-04

      这一关要用到apache中的.htaccess绕过,我们先创建一个.htaccess文件,内容为

<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>

      它可以将同目录下的1.png文件当作php文件运行,然后再将我们的1.php改为1.png与.htaccess一起上传后,去访问1.png文件,发现访问成功,即上传成功

Pass-05

      这关我们同样点击查看源码,发现没有过滤大小写

所以我们只需要将1.php改为1.Php就可以,这关同样因为环境问题有各种不同的效果

      发现上传成功,也是可以成功访问的

Pass-06

      这一关没有过滤去首尾空格,所以我们可以在php末尾加个空格,就可以上传,但是windows系统默认是不允许我们在文件末尾中加空格的,这就需要我们利用burpsuit抓包然后进行修改

      打开burpsuit开启抓包后点击上传,在文件信息中的文件名称后加个空格,然后放行

      发现成功上传,也可以正常连接

Pass-07

      

      这一关在查看源码后发现没有删除文件末尾的点这一个过滤

      所以我们可以像第六关那样抓包然后在文件末尾加一个点然后放行,发现成功上传

      也可以正常连接

Pass-08

      这一关没有去除::$DATA字符串

      所以我们可以在文件末尾加一个::$DATA,然后上传,发现成功上传

      然后我们访问时需要将::$DATA删除,就可以正常连接

      这里的::$DATA的作用是将上传的文件被当作数据流,当网站看到用户上传的只是个数据流,就不会对其加以防护。

Pass-09

      这一关我们需要抓包后在文件后面加上. .(中间有空格)。然后放行,就可以成功上传然后访问。

Pass-10

      这一关通过源码可以发现,他是通过检测我们上传的文件名称,如果其中有php则将其删除,所以这一关我们可以通过双写的方法,让他将将测到的php删除后,文件后缀仍然可以拼成一个php进行上传,所以这一关我们上传的文件名为1.pphphp

      发现可以成功上传,然后直接去访问该图片(点击新建标签页打开图像)

      然后尝试连接

Pass-11

      这一关需要php的版本号低于5.3.29,且magic_quotes_gpc为关闭状态(需要自己关闭),查看这关源码,很明显是一个白名单上传,它只允许上传它给定的后缀名

      我们需要将我们的php文件后缀名改为jpg然后抓包上传

      在其中的save_path(文件上传路径)后直接加上我们要上传的文件---1.php%00/jpg(这里的%00为一个截断符号,他代表网站检索路径时检索到这里就结束,这样就不会再加上后面的1.jpg从而变成1.php1.jpg了),然后放行发现上传成功

      直接去访问就可以了,也可以成功连接(如果不行就是环境问题)

Pass-12

      查看这一关的源代码,和第十一关对比,发现变成了post提交,那么思路就和第十一关一样,不过post方式不会自行解码,所以我们先要对%00进行一次url编码再填入进去,而且这次的路径不会直接在上面的url中显示,变成了下面

       选中%00然后右键可以直接进行url编码

       编码后直接放行就可以了,与第十一题一样

Pass-13

       这一关提示我们上传图片码

       图片码是伪装成图片的木马文件,具体的制作方法参照       https://www.cnblogs.com/1ink/p/15101706.html,只需要用记事本打开图片后在底部添加上我们要运行的shell命令就可以了,这里还需要一个php文件,内容为

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){
    include $file;
}else{
    show_source(__file__);
}
?

      将其放在web目录下,这个文件主要是为了将我们上传的图片码内容可以当作php代码运行,万事具备后我们直接上传我们的图片码

      发现可以直接上传成功,上传成功后直接访问是访问到了这个图片,我们需要用那个执行php命令的文件再将其访问一下。

      首先,我们先访问那个文件

      这个文件是用get的方法获取一个参数,它可以将别的后缀的文件当作php命令执行,正好可以运行我们的图片码,我们访问图片码,然后复制路径(这里只需要upload后面的)upload//9220240726183701.gif

      然后在上一个文件url的末尾加一个file参数=upload//9220240726183701.gif

      点击回车看到下面页面即是访问成功

      然后我们尝试连接(直接复制访问后的url就可),发现连接成功

Pass-14

      与13关相同

Pass-15

      与13,14关相同

Pass-16

      这一关也可以上传图片码,但是他会将我们的图片进行二次渲染后再自行组合成图片,所以我们上传与前面同样的图片码时会报错

      这里我们直接上传一个已经进行过二次渲染的图片码就好

      可以发现成功上传,剩下的步骤就与前面三关相同了,我们连接发现连接成功

Pass-17

     这一关用到了条件竞争,查看源码后发现,他会将我们上传的文件进行检查,发现不是规定的文件后直接删除,所以我们就要利用条件竞争,在他删除我们的文件之前访问我们的文件使其语句执行成功,而这里用到的语句就是生成另一个文件的语句

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

      他的意思是生成一个名为233.php的文件,内容为<?php phpinfo();?>(探针),我们将这段语句放到上传的文件(我这里是1.php)中,然后开始上传,因为删除的很快,我们这里用burpsuit抓包后利用攻击模块去一直给他发送,抓到包后右键发送到intruder

      在攻击模块中将payload选择为nullpayloads,然后选择无限重复后开始攻击

      接下来就要到浏览器中不断访问upload/1.php,不断刷新,直到显示生成成功后upload文件夹里就会有233.php文件(这里有运气和电脑配置网速等等很多因素影响)

      接下来我们只要去访问233.php文件就好了(因为这里我们放的是探针文件,如果想要获取shell,只要把1.php文件中的生成文件内容改为一句话木马就好)

Pass-18

      这一关又限制了文件名后缀,不能上传php的文件了,我们直接上传图片码尝试,发现可以,与13,14,15关相同

Pass-19

      这一关可以让我们自己选择上传的文件的名称

      我们尝试直接上传1.php文件,然后在保存名称中改为1.php.,发现成功上传

      也可以连接

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值