关于靶场说几点:单纯用phpstudy 可能无法复现所有的漏洞,而且phpstudy中的php可能是线程不安全的,所以建议大家在自己本机或者虚拟机的中亲自搭建一下apache和php的环境,便于复现upload-labs的所有靶场环境。配置有问题的可以参考我写的这篇文章:
https://blog.csdn.net/qq_51550750/article/details/124062273

pass10-观察源码,思路生成

看源码:

$file_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //转换为小写
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
$file_ext = trim($file_ext); //首尾去空

对比pass5的源码:

$file_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //转换为小写
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
$file_ext = trim($file_ext); //首尾去空

pass10貌似没有什么变化。

如果我们尝试先加一个“.”,再加个空格,再加个“.”呢?最后是不是就是剩了一个点呢?

pass10-尝试上传

首先说明我用的靶场环境是phpstudy,其中php的版本是7.3.4nts:

然后上传文件,抓包,改名称:

然后forward:
貌似是上传成功了:

查看文件路径,

尝试连接:

连接成功。

pass11-观察源码

发现对比于第10关就只有一行:

$file_name = str_ireplace($deny_ext,"", $file_name);

其实功能就是在下面的黑名单中,如果发现了匹配,就替换成空:

"php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini"

利用这个思路,是不是可以写成shell.phphpp
在过滤之后,是不是就变成了shell.php?
试试这个方法:

pass11-上传文件

抓包,改名:

貌似是上传成功了:

蚁剑测试连接:

简单总结一下

pass6:大小写过滤不全面
pass7:扩展名最后加一个空格
pass8:扩展名最后加一个点
pass9:扩展名最后加上::$DATA
pass10:扩展名最后加点空点
pass11:双写文件扩展名

觉得写的还不错的师傅点个赞吧!知识分享是无价的。

upload-labs_pass10_点空点绕过_pass11_双写文件扩展名相关推荐

  1. upload-labs_less3_less4_等价扩展名绕过_.htaccess文件改变文件扩展名

    关于靶场说几点:单纯用phpstudy 可能无法复现所有的漏洞,而且phpstudy中的php可能是线程不安全的,所以建议大家在自己本机或者虚拟机的中亲自搭建一下apache和php的环境,便于复现u ...

  2. 渗透测试-文件上传之双写文件名和::$DATA绕过(四)

    文件上传之双写文件名和::$DATA绕过 文件上传实验室upload-labs第9,10,11,12关 文章目录 文件上传之双写文件名和::$DATA绕过 前言 一.什么是::$DATA 二.双写文件 ...

  3. mysql innodb 双写缓冲区关键代码实现

    //buf0dblwr.cc /* *这个算是双写缓冲区与外部交互的接口了 */ dberr_t dblwr::write(buf_flush_t flush_type, buf_page_t *bp ...

  4. ctf题目php文件上传如何绕过_ctf基本的文件上传与绕过学习

    绕过客户端校验前台脚本检测扩展名上传webs hell 原理: 当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何 消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前 ...

  5. print writer保留原有信息写文件_Python读写EXCEL文件常用方法大全 - pythonputao

    前言 python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式. 数据准备 为了方便演示,我这里新建了一个和x文件,第一个工作表sheet1区域" ...

  6. 利用CStdioFile类实现写文件读文件(mfc)

    文章目录 1.主要函数 1.1读文件 1.2写文件 2.补充知识 3.说明 二话不说,先上代码! 1.主要函数 1.1读文件 // TODO: 在此添加控件通知处理程序代码CFileDialog dl ...

  7. SQLMAP-Tamper之较为通用的双写绕过

    前言 21年省决赛的SQLITE注入就是用的双写绕过,当时是手搓代码打的,这几天想起来了,寻思着写个tamper试试. 一开始以为很简单,后来才发现有很多要注意的点,折磨了挺久. 等弄完才明白为什么s ...

  8. php双写绕过,PHP preg_系列漏洞小结

    最近看 P 神以前写的文章,其中在 3 个参数的回调函数中提到了 preg_replace /e 命令执行,对这块不是很熟悉的我特此写这篇文章总结学习一下. preg_matchint preg_ma ...

  9. php双写绕过,高并发下缓存与数据库双写不一致解决方案

    解决方案 在高并发场景下,数据库和缓存双写不一致情况,我们可以当写入数据库后删除缓存,当查的时候先查缓存,如果缓存为空再查数据库,最后写入缓存,但是这样还是存在一个问题. 如图所示,当出现这种情况时该 ...

最新文章

  1. 烂泥:学习ssh之ssh无密码登陆
  2. 实战SSM_O2O商铺_24【商铺列表】View层开发
  3. Docker使用阿里云docker镜像加速
  4. case when then的用法
  5. Databricks 企业版 SparkDelta Lake 引擎助力 Lakehouse 高效访问
  6. Bootstrap响应式内嵌元素
  7. 准备入手Macbook Pro
  8. 音视频开发(10)---nginx-rtmp视频流服务器搭建
  9. JS History
  10. MacOS的OCR文字识别,节约时间,提高效率
  11. 如何关闭正在运行的端口
  12. 如何从产品层面做需求分析——产品定位
  13. 嵌入式系统主要应用于哪些行业中?
  14. 解决:Parameter 0 of constructor in xxx required a bean of type ‘xxx‘ that could not be found.
  15. matlab求隐函数二阶导,求隐函数二阶导数.ppt
  16. [HDU1004] Let the balloon rise - 让气球升起来
  17. [Spam]垃圾邮件者纲要(Spammer's Compendium)
  18. 超导量子计算机原型机,超导量子计算原型机“祖冲之号”有多强?戳链接带你了解“量子世界”...
  19. php trait instanceof,Hyperf 验证 trait
  20. java基于SSM的公司办公网站

热门文章

  1. Spark - About trend of ERP topic - serie 2employee
  2. Data for set COM_LOCAT_ADDR may only be changed in the original system CRQ_100
  3. Middleware Monitor Cockpit SMWP
  4. oracle时间类型转化成java对象_Oracle数据库date类型与Java中Date的联系与转化
  5. 在xml文件中使用typeAliases标签报错The content of element type “configuration“ must match “(properties?,setting
  6. python识别人脸多种属性_OpenCV-Python(3)训练一个人脸识别器
  7. python的for语句打印金字塔图形_python实现输入任意一个大写字母生成金字塔的示例...
  8. python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)
  9. MySQL中清空表和截断表的区别(新手入门.)
  10. 开启应用的时候总是以管理员身份打开的解决方案