当前位置: 首页 > article >正文

【网络安全】-文件上传漏洞实战-upload-labs(0~16)

准备:

一句话木马:<? php @eval($_REQUEST[cmd]); ?)>

格式:写入txt文本重命名后缀问.php /.php 格式,看具体要求上传。

Pass-01:

显示页面源代码,发现是js对不合法文件进行检查,上传修改为.jpg的php文件直接修改后缀名为.php,使用burpsuite工具抓包,再将jpg改为php,然后点击Forward即可完成上传

Pass-02:

上传一个1.php文件,用burp抓包。抓包后修改可上传文件类型,成功上传文件.

Pass-03:

显示页面源代码,黑名单验证,禁止上传.asp,.aspx,.php.jsp后缀的文件,我们可以php上传一个名为1.php5的文件,发现直接上传成功。

Pass-04:

显示页面源代码,黑名单验证增多,先上传一个.png文件,然后上传.htaccess后缀文件(内容:<IfModule mime_module>
AddHandler php5-script .gif          
SetHandler application/x-httpd-php   
</IfModule>  ->把上传的png文件当成php5文件进行解读),再访问.png。

Pass-05:

显示页面源代码,发现可以用php. .绕过上传。

Pass-06:

显示页面源代码,发现这关有转换大小写的代码,可以上传大小写混合的后缀名来进行绕过。

Pass-07:

显示页面源代码, 发现有收尾去空,会去掉文件前后面加上的空格,但windows特性,文件名后空格会被直接删除,不能直接上传.php后加空格,所以我们要用burp抓包然后再添加空格。

Pass-08:

显示页面源代码,对比第四关,发现少了删除文件末尾的点一样使用burp抓包然后后缀加一个点,和第六关一样,windows文件后缀名不能加’.'所以我们要用burp抓包然后再添加点。

Pass-09:

显示页面源代码,发现有去除字符串,和前面关卡一样,在burp中抓包在文件名后加::$DATA。

Pass-10:

显示页面源代码,发现没有循环验证,也就是说转换大小写去除空格什么的它只验证一次,所以把后缀改为.phP. . ,直接开始实验,上传一个1.php抓包。

Pass-11:

显示页面源代码,黑名单验证,意思是如果上传了它这些后缀的文件,就会把后缀名删除所以我们只需要把后缀改为.pphphp,它删除掉中间的php后缀仍然为php。

Pass-12:

显示页面源代码,白名单绕过满足条件后先上传一个.png文件开始抓包,需要使用%00截断。

前置条件:

php版本小于5.3.4    ->无法下载

php_ini文件中的magic_quotes_gpc处于off状态。

步骤:

此电脑:phpstudy/www上方搜索php_ini

文档打开-查找-magic_quotes_gpc,on->off

                       

                  

Pass-13:

显示页面源代码,白名单绕过满足条件后先上传一个.png文件开始抓包,需要使用%00截断。

只是post请求不能自动编码%00,需要手动编码。

Pass-14:

上传图片马到服务器

显示页面源代码:只验证头部信息,只读2字节

图片码制作:直接页面截图,重命名为.txt文件,打开文件,将一句话木马黏贴进去,再进行重命名为3.png文件。

上传3.png文件,复制图像链接(http://upload-labs-master/upload/2720240909120007.png)构造使用include文件包含漏洞访问:http://upload-labs-master/include.php?file=upload/2720240909120007.png得到php解析。

注:有些浏览器对一句话木马敏感,不进行解析,需要把一句话木马换成无危害性的php输出函数:<?php phpinfo(); ?>

Pass-15:

显示页面源代码:

引入getimagesize函数对文件名前两位进行检查。

实质上与Pass-14 的只验证头部信息,只读2字节含义相同,做法也相同。

Pass-16:

显示页面源代码:

前置条件:

1.php>5.3

2.需要开启php_ini的allow_url_fopen模块 ->allow_url_fopen=On

3.需要开启php_exif模块

重启apache与mysql

接下来做法与上一关相同:


http://www.kler.cn/a/299950.html

相关文章:

  • 【博客之星】年度总结:在云影与墨香中探寻成长的足迹
  • Git代码管理工具 — 5 GitHub远程仓库
  • docker日志保留策略设置
  • 详细介绍:Kubernetes(K8s)的技术架构(核心概念、调度和资源管理、安全性、持续集成与持续部署、网络和服务发现)
  • Flutter:搜索页,搜索bar封装
  • PIC单片机HEX文件格式分析
  • Python 内置的一些数据结构
  • Groovy -> Groovy 集合操作
  • 【数据结构】二叉树的前中后序遍历以及层序遍历(全解)
  • PostgreSQL中的多版本并发控制(MVCC)深入解析
  • 会话好友区设计与开发(二)
  • 自然语言处理系列六十九》搜索引擎项目实战》搜索框架技术选型
  • 常见 HTTP 状态码详解与Nginx 文件上传大小限制
  • C++复习day08
  • SpringCache之本地缓存
  • 自动化抢票 12306
  • 苹果iOS/ iPadOS18 RC 版、17.7 RC版更新发布
  • Mybatis-Plus笔记
  • Mac OS14外接显示器字体过小和放大字体模糊问题的简单解决
  • FIFO求和实验
  • 电脑点击关机之后,又自动重启开机了。根本就关不了?
  • 关于Python爬虫的基础知识
  • 云计算实训48——k8s环境搭建(详细版)
  • 数据结构——堆排序
  • OGRE 3D----创建第一个OGRE 3D示例
  • YashanDB产品调优实战:分享日常调优技巧及提升系统性能的实战经验