i春秋-GetFlag

题目

image.png
image.png
image.png

考点

sql注入,md5加密,代码审计,利用eval函数

解题

参考wp

https://www.cnblogs.com/qiaowukong/p/13630130.html

找md5值

看见验证码中的提示,就是去找一个md5值前六位是指定值的数(严格来说不一定是数),白嫖大佬的脚本:

# -*- coding: UTF-8 -*-
'''
@File    :GetFlag.py
@IDE     :PyCharm 
@Author  :M7
@Date    :2024/3/21
'''
import hashlib
from multiprocessing.dummy import Pool as ThreadPool# MD5截断数值已知 求原始数据
# 例子 substr(md5(captcha), 0, 6)=60b7efdef md5(s):  # 计算MD5字符串return hashlib.md5(str(s).encode('utf-8')).hexdigest()keymd5 = 'cd0bf6'   #已知的md5截断值
md5start = 0   # 设置题目已知的截断位置
md5length = 6def findmd5(sss):    # 输入范围 里面会进行md5测试key = sss.split(':')start = int(key[0])   # 开始位置end = int(key[1])    # 结束位置result = 0for i in range(start, end):# print(md5(i)[md5start:md5length])if md5(i)[0:6] == keymd5:            # 拿到加密字符串result = iprint(result)    # 打印breaklist=[]  # 参数列表
for i in range(10):   # 多线程的数字列表 开始与结尾list.append(str(10000000*i) + ':' + str(10000000*(i+1)))
pool = ThreadPool()    # 多线程任务
pool.map(findmd5, list) # 函数 与参数列表
pool.close()
pool.join()

得到:

11481707
26143897
75290163

测试sql注入

admin' or 1=1--+
123
11481707

image.png
返回的界面有显示报错,那么就说明存在sql注入
image.png
接下来就是测试sql注入语句了
image.png

构造注入payload

admin' or '1'='1

image.png
image.png
image.png

访问可疑文件

点击三个文件都能下载下来,但是只有一个a.php文件有利用信息,得到flag在网站的根目录下
image.png
那么利用前面下载代码的功能,把flag.php文件下载下来
image.png

下载文件

构造下载文件payload

http://eci-2ze7er1y0cj85awr3unk.cloudeci1.ichunqiu.com/Challenges/file/download.php?f=/var/www/html/Challenges/flag.php

image.png
下载下来后,看到源码如下:

<?php
$f = $_POST['flag'];
$f = str_replace(array('`', '$', '*', '#', ':', '\\', '"', "'", '(', ')', '.', '>'), '', $f);
if((strlen($f) > 13) || (false !== stripos($f, 'return')))
{die('wowwwwwwwwwwwwwwwwwwwwwwwww');
}
try
{eval("\$spaceone = $f");
}
catch (Exception $e)
{return false;
}
if ($spaceone === 'flag'){echo file_get_contents("helloctf.php");
}?>

代码审计

16行的if判断为true时才会显示helloctf.php文件代码
变量$spaceone得在第10行得到运行
那么就得从第二行有一个post传参的功能入手了
第三行和第四行还对post传入的字符串进行了过滤

最终构造的payload为

post传参flag='flag';

改包发起请求

image.png
看到返回没有任何东西,那么在查看一下源代码,发现了有flag
image.png

提交flag

image.png

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

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

相关文章

虚拟化技术 安装和配置StartWind iSCSI目标服务器

一、实验内容 安装StartWind iSCSI目标服务器配置StartWind iSCSI目标服务器 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装vSphere Client已创建虚拟机并在其上安装CentOS6.5StarWind安装介质starwind.…

系统分析师论文——论软件需求分析方法和工具的选用

现已临近2024年软考&#xff0c;周围一些报名参加系统分析师考试的“小伙伴”还未准备论文&#xff0c;我分享早年写的一些内容&#xff08;包括参加继续教育准备的论文&#xff09;&#xff0c;仅供大家结合最新考纲要求酌情参考&#xff0c;希望予人玫瑰&#xff0c;手有余香…

N5183B是德科技n5183b信号源

181/2461/8938产品概述&#xff1a; 简  述&#xff1a; N5183B 频率范围&#xff1a;9 kHz 至 20 GHz&#xff0c;具有 AM、FM、相位调制功能。N5183B MXG X 系列微波模拟信号发生器拥有 9 kHz 至 40 GHz 的频率覆盖范围&#xff0c;以及接近 PSG 级别的相位噪声性能&…

飞书API(8):MySQL 入库定制版本

一、引入 通用版能解决百分之八九十的任务&#xff0c;剩下的部分任务需要进行定制。 先说明通用版本和定制版本有什么不同&#xff0c;通用版本就是只管大的数据类型&#xff0c;将数据处理为对应的类型入库&#xff0c;而定制版本会考虑局部列的数据类型&#xff0c;。举个…

政安晨:【Keras机器学习示例演绎】(四十三)—— 使用 KerasNLP 实现英语到西班牙语的翻译

目录 简介 设置 下载数据 解析数据 数据标记化 格式化数据集 建立模型 训练我们的模型 解码测试句子&#xff08;定性分析&#xff09; 解码测试句子&#xff08;定性分析&#xff09; 评估我们的模型&#xff08;定量分析&#xff09; 10 个轮次后&#xff0c;得分…

PostgreSQL的学习心得和知识总结(一百四十三)|深入理解PostgreSQL数据库之Support event trigger for logoff

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

auto->decltype

auto c11标准才有的,c14丰富了很多这个相关的用法 声明变量别用auto,auto是让编辑器来自己推断,很影响运行效率 #include<iostream> using namespace std;auto ave(int a, int b) {return a b; }int main() {cout << typeid(ave(1, 2)).name()<<endl;ret…

TMS320F280049 CLB模块--FSM(3)

功能框图 FSM有效状态机内部框图如下图所示&#xff0c;可以看到内部有S0 / S1两个状态和下一状态的跳转查找表。还有个输出查找表。 下图是FSM LUT的示意框图。FSM还可以工作在3输入或4输入的查找表模式下。对于输入&#xff0c;EXTRA_EXT_IN1/0可以替换S0/1。 寄存器 参考文…

Java - Json字符串转List<LinkedHashMap<String,String>>

需求&#xff1a;在处理数据时&#xff0c;需要将一个Object类型对象集合转为有序的Map类型集合。 一、问题 1.原代码&#xff1a; 但在使用时出现报错&#xff1a; Incompatible equality constraint: LinkedHashMap<String, String> and LinkedHashMap 不兼容的相等…

[AutoSar]BSW_Diagnostic_002 DCM模块介绍

目录 关键词平台说明背景一、DCM所处架构位置二、DCM 与其他模块的交互三、DCM 的功能四、DCM的内部子模块4.1 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c; EB芯片厂商TI 英飞凌编程语言C&…

kali搭建Vulhub靶场

简单概述 Vulhub是一个面向大众的开源漏洞靶场&#xff0c;借助Docker简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。旨在让漏洞复现变得更加简单&#xff0c;让安全研究者更加专注于漏洞原理本身。 Docker是一个开源的容器引擎&#xff0c;它有助于更快地交付应用…

【Android】Kotlin学习之数据容器 -- 集合

一. 定义 List : 是一个有序列表, 可通过下标访问元素. 元素可以在list中出现多次, 元素可重复 Set : 是元素唯一的集合, 一般来说Set中元素的顺序并不重要, 无序集合. Map : 是一组键值对, 键是唯一的, 每个键刚好映射到一个值, 值可以重复 二. 集合创建 三. 示例 mutabl…