dvwa5——File Upload

LOW

在dvwa里建一个testd2.php文件,写入一句话木马,密码password

antsword连接

直接上传testd2.php文件,上传成功

MEDIUM

查看源码,发现这一关只能提交jpg和png格式的文件

把testd2.php的后缀改成jpg,上传时用bp抓包 ,抓到这些

把21行的jpg改成hph,放包,上传成功

HIGH

先看源码:

注意两个比较重要的函数

1.strrpos

复制代码
$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);

这段作用是:找到文件名中最后一个.的位置,然后从.后一位开始截取,得到文件扩展名

2.strtolower

复制代码
if((strtolower($uploaded_ext) == "jpg" || strtolower($uploaded_ext) == "jpeg" || ...)

这段作用是:将文件扩展名转换为小写,然后与小写的允许扩展名比较

所以优化点就是high只允许.jpg,.jpeg,.png扩展名,用strtolower防止大小写绕过,用strrpos获取最后一个'.'的位置来定位扩展名

还用这个函数检验了是否上传的是图像

所以我们接下来的目的是把刚才的一句话直接嵌入图片中上传 !!

copy合并(二进制拼接)

我们准备随意一张图片和一句话木马文档(damn.jpg和我们上文提到的testd2.php)

winr打开中端,进入这两个文件所在位置,输入如下代码

复制代码
copy damn.jpg/b +testd2.php mm.jpg

我们获得一张包含木马的图片

正常上传即可

IMPOSSIBLE

分析源码

imagecreatefromjpeg函数会重新生成图片,去除所有的非图像数据,我们隐藏在图片里的恶意代码就会被清除

这里还会随机生成文件名,我们无法猜测上传后的文件路径

❀❀❀ 完结撒花!!❀❀❀

相关推荐
Escalating_xu6 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
niucloud-admin8 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
一枕槐安4878 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
李纲明8 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
kingx310 小时前
Windows Server安全配置深度复盘:关键 Payload 与解题思路
windows·靶场·web·加固
其实防守也摸鱼11 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
niucloud-admin13 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:评价列表
开发语言·php
临沂码农王老七14 小时前
Composer一劳永逸的“绿色安装法”
php·composer
aixingpan14 小时前
aixingpan.cn API开发文档:api_docs_bichart_common2接口指南
前端·php
自由彩虹15 小时前
靶场通关15--bossplayersctf
linux·服务器·网络·安全·web安全·网络安全