【学习笔记】文件上传漏洞--二次渲染、.htaccess、变异免杀

目录

[第十二关 远程包含地址转换](#第十二关 远程包含地址转换)

[第十三关 突破上传删除](#第十三关 突破上传删除)

条件竞争

[第十四关 二次渲染](#第十四关 二次渲染)

第十五关

第十六关

[第十七关 .htaccess](#第十七关 .htaccess)

[第十八关 后门免杀](#第十八关 后门免杀)

[第十九关 日志包含](#第十九关 日志包含)


第十二关 远程包含地址转换

延续第十一关,加一个文件头,上传成功,说明有文件头检测

用png包含后门,上传不成功,说明后门代码里有内容被过滤,经过尝试发现是<>"";(){}

换.users.ini,发现也无法上传,经删除验证,发现是.及关键字符被过滤掉

那么我们可以通过包含远程地址来实现

但因为过滤.(点),则需要用到在线地址转换工具,将ip转换为数字

IP转换为数字后的内容

第十三关 突破上传删除

前面操作同十二关,之后

(.user.ini存在,说明png被删除)

png删除规则:

1.什么都删除

2.后门代码删除

可以访问,继续

找到flag

条件竞争

将文件上传至服务器后,不会被立即删除,而是做短暂的停留,中间会有一小部分时间差,这部分时间差足够执行一句代码,我们利用这段时间差和一段代码就可以达到上传含有恶意代码的非法文件的目的,这就是"条件竞争"。

第十四关 二次渲染

查看元素,发现是上传png文件,第一张png图片上传不过去,换一张上传成功。查看图片,发现上传过去的图片与原图大小(多少k)不太一样,即"二次渲染"。

二次渲染

概念:

绕过

在我们上传文件后,网站会对图片进行二次处理(格式、尺寸要求等),服务器会把里面的内容进行删除替换更新,处理完成后,根据我们原有的图片生成一个新的图片并放到网站对应的标签进行显示。

1、配合文件包含漏洞:

将一句话木马插入到网站二次处理后的图片中,也就是把一句话插入图片在二次渲染后会保留的那部分数据里,确保不会在二次处理时删除掉。这样二次渲染后的图片中就存在了一句话,在配合文件包含漏洞获取webshell。

2、配合条件竞争:

这里二次渲染的逻辑存在漏洞,先将文件上传,之后再判断,符合就保存,不符合删除,可利用条件竞争来进行爆破上传。

将后门代码插入共同体中,上传

上传失败,说明还有检测

php代码,生成一个带有后门代码的png文件,上传

无回显,抓包

send,解出flag

第十五关

文件类型限制为jpg,成功上传jpg文件,发现是和十四关一样的php包含地址

直接在图片里插入后门代码会被过滤,这里我们可以自己在网上找php脚本代码去插入后门

发现flag.php,1=system('tac flag.php'),解出flag

第十六关

文件类型限制为zip,直接抓包加入后门代码,不存在二次渲染,操作简单

第十七关 .htaccess

.htaccess是一个纯文本文件,里面存放着Apache服务器配置相关的一些指令,它类似于Apache的站点配置文件。

作用:URL重写、自定义错误页面、MIME类型配置以及访问权限控制等。主要体现在伪静态的应用、图片防盗链、自定义404错误页面、阻止/允许特定IP/IP段、目录浏览与主页、禁止访问指定文件类型、文件密码保护等。

用途范围:主要针对当前目录。

详细讲解:Apache .htaccess

【转载】.htaccess教程

(上传jpg文件,抓包,发现服务器为nginx,与.htaccess所用服务器不符

搜索:搜nginx服务器支持.htaccess的方法)

过关方法:.htaccess可以将.png后缀的文件解析成php

AddType application/x-httpd-php .png

将.png后缀的文件解析成php

第十八关 后门免杀

直接上传png文件,可以上传;抓包,更改为php文件,也可以上传;写上后门代码,上传失败;尝试后发现,eval被过滤

可以通过这样的命令去读取flag,但发现system被过滤

可将system拆分进行上传

这里没有flag,('ls ./')、('ls ../')访问上上级目录

访问flagaa.php文件,发现flag。

第十九关 日志包含

改为image/php

或下图,均可

以上内容均为自己学习理解所得,如有错误,欢迎大家评论指正!

相关推荐
青皮桔2 分钟前
CSS实现百分比水柱图
前端·css
影子信息7 分钟前
vue 前端动态导入文件 import.meta.glob
前端·javascript·vue.js
青阳流月8 分钟前
1.vue权衡的艺术
前端·vue.js·开源
样子201813 分钟前
Vue3 之dialog弹框简单制作
前端·javascript·vue.js·前端框架·ecmascript
kevin_水滴石穿13 分钟前
Vue 中报错 TypeError: crypto$2.getRandomValues is not a function
前端·javascript·vue.js
孤水寒月1 小时前
给自己网站增加一个免费的AI助手,纯HTML
前端·人工智能·html
CoderLiu1 小时前
用这个MCP,只给大模型一个figma链接就能直接导出图片,还能自动压缩上传?
前端·llm·mcp
伍哥的传说1 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
海的诗篇_2 小时前
前端开发面试题总结-原生小程序部分
前端·javascript·面试·小程序·vue·html
uncleTom6662 小时前
前端地图可视化的新宠儿:Cesium 地图封装实践
前端