题解web

1.[LitCTF 2023]Follow me and hack me

1)进入题目环境,提示get传参,post传参

2)看看源码,也没啥

3)直接用hackbar,传入对应参数即可得到FLAG

3)但是扫描出来它后端还有东西,

4)打开原来是彩蛋

2.[BJDCTF 2020]easy_md5

1)进入环境后不管输入什么

他只会修改passward 页面没有回显 没反应

2)一顿输入操作后无果 只能通过url看到是get传参 用burp抓包看看

这里学一下关于md5($pass,true)的注入
关于这题

发现了这里它提示 select * from `admin` where password=md5($pass,true)

也就是通过注入来进行绕过    这里先看下php MD5函数的用法

32位16进制字符串的意思是:将MD5加密得到的128 位长度的"指纹信息",以每4位为一组,分为32组,每组以转换为16进制,进行转换得到一个32位的字符串。

总的来说就是我们平时看到的MD5加密的结果
16位原始二进制格式的字符串的意思是:将128 位长度的"指纹信息"分组转化为16位的一个字符串,然后两个字符为一组,依照ACILL码转化为字符串。

也就是说,就是当md5函数的第二个参数为true时,该函数的输出是原始二进制格式,会被作为字符串处理。

这里进行绕过就是需要构造一个语句使得sql语句永恒为真 

像这样的话 select * from `admin` where password=’’or’xxx    当or后面的值为true时即可完成注入

如此:要达到注入。首先要有一个字符串,这个字符串经过md5得到的16位原始二进制的字符串能帮我们实现sql注入。首先or这个字符串是必要的,因为需要构造永恒为真的语句。同时为了配对原先sql语句里面有的单引号进行闭合

这里再看下ffifdyop的效果

<?php
$str = "ffifdyop";
echo "The string: ".$str."<br>";
echo "TRUE - Raw 16 character binary format:如下所示: ".md5($str, TRUE)."<br>";
echo "FALSE - 32 character hex number: ".md5($str)."<br>";
?>

运行后如下

使用ASCII码在线转换器看效果

3)然后查看页面源代码发现需要传入两个参数 

满足a与b的参数不同且两者的MD5相同就会返回正确的值

注意这里是弱比较==

这里有两种方法 第一种采用数组传参 数组传参方式格式为num[]=w  num为参数(例如本题的a) w为传入的值 最终传入的值如下

?a[]=1&b[]=2  因为md5不能处理数组,md5 函数哈希数组会返回 NULL。从而达到两者相等进行绕过。

4)这里只能使用数组传参了 之前的那个页面由于是弱比较 所以有两种方法可以进行MD5绕过

这里是强比较所以只能使用数组 不过这道题  数组可以通杀绕过这两层的MD5

Payload如下  post传参

param1[]=2¶m2[]=3

3.[ZJCTF 2019]NiZhuanSiWei

1)

file_get_contents()函数用于读取文件中的内容,并将其作为字符串返回。它通常用于读取文本文件或从远程URL获取内容。在本文中,我们将介绍使用file_get_contents()函数来读取文件的基本方法。

语法

file_get_contents(filename, include_path, context, start, max_length)

参数

filename:必需,指定要读取的文件名称,也可以是一个URL,支持绝对路径和相对路径。

include_path:可选,如果设置了这个参数,PHP将在include_path(设置在php.ini中)中查找文件。如果没有设置,PHP将在当前脚本目录中查找文件。

context:可选,是一个HTTP请求的上下文选项数组,通常在与文件读取和远程URL访问相关的情况下使用。

start:可选,规定从文件中的哪个位置开始读取,以字节数表示。

max_length:可选,规定从文件中读取的最大字节数。

preg_match()函数、

语法

  • $pattern:要搜索的模式,字符串类型。

  • $subject:输入字符串。

  • $matches:如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

  • $flags:可以被设置为以下标记值的组合:PREG_UNMATCHED_AS_NULL、PREG_OFFSET_CAPTURE

  • $offset:可选参数 offset 用于 指定从目标字符串的某个位置开始搜索(单位是字节)。

  • 返回值:匹配次数。 它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后 将会停止匹配。发生错误preg_match()返回 FALSE。

2)

$text是一个变量,file_get_contents不能读取一个变量


3)分析一下:

有三个传入的变量名,猜测最后进入else可以出flag;

首先我们输入的t要满足t=welcome to the zjctf

尝试使用data伪协议去给他赋值,在一个文件里面。payload:/?text=data://text/plain,welcome to the zjctf

成功进入

4)然后需要用url语句读取文件内容

5)里面是一串basse64编码,读取之后是一篇新的php文本

得到如下代码

<?php  

class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

6)useless.php里写的file_get_contents直接去读flag.php,构造反序列化,poc:

<?php
class Flag
{  //flag.php
    public $file = 'flag.php';
}
$a = new Flag();
echo urlencode(serialize($a));

7)然后将得到的序列化语句传入,查看源码即可得到flag

4.[LitCTF 2023]Ping

1)进入环境,就是一个只能ping ip地址的文本框,这里也是直接ping一下127.0.0.1这个地址

2)ping出来一堆东西,没太看懂,还是选择抓包试试

3)直接修改command=|cat /flag,然后发包即可得到flag

4)其他解法

源码里有一个用于过滤的函数,这是一段插在 html 中的 js 代码。

函数的大致作用是严格匹配 ipv4 地址,比如 127.0.0.1 这种格式,所以域名都不可以。被禁了
对于这种写在前端的验证函数,不需要去研究如何绕过,直接禁掉 js 代码的调用就好了,浏览器应该都有这个功能。我是用火狐上的一个插件来禁用 js 代码:

打开后,此时再去输入命令,发现没有任何过滤。

flag 在根目录下,用 ls 不断查找每一级目录下的文件,最后发现 flag 在根目录下。

直接查看根目录下的 flag :

|cat /flag

就能得到flag

5.[NSSCTF 2022 Spring Recruit]ezgame

1)打开环境后是一个游戏界面

2)看看源码,没多大用,扫出来几个网页,也没多大用

3)f12查看源码,到js出进行操作

4)打开覆盖新建一个空文件放进去,然后点击目标文件,点击覆盖,右下角变紫色就成功,然后修改分数

5)改好后随便玩一下,救出flag了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Llama模型家族之拒绝抽样(Rejection Sampling)(二)均匀分布简介

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

L45---506.相对名次(java)--排序

1.题目描述 2.知识点 &#xff08;1&#xff09;String.join(" ", words) 是 Java 中的一个语法&#xff0c;用于将数组或集合中的元素连接成一个单独的字符串&#xff0c;连接时使用指定的分隔符。这里的 " " 是作为分隔符使用的一个空格字符串。 Strin…

Docker|了解容器镜像层(1)

引言 容器非常神奇。它们允许简单的进程表现得像虚拟机。在这种优雅的底层是一组模式和实践&#xff0c;最终使一切运作起来。在设计的根本是层。层是存储和分发容器化文件系统内容的基本方式。这种设计既出人意料地简单&#xff0c;同时又非常强大。在今天的帖子[1]中&#xf…

一句话说清HDMI ARC eARC功能和区别

HDMI&#xff1a; 高清多媒体接口&#xff0c;主要用于传输高清音视频信号&#xff0c;High Definition Multimedia Interface。 ARC: 音频回传通道&#xff0c;Audio Return Channel eARC: 增强型音频回传通道&#xff0c;第一个E是增强的意思&#xff0c;Enhanced Audio…

国产主流软硬件厂商生态分析

国产领域主流厂商汇总 信创&#xff0c;即信息技术应用创新&#xff0c;由“信息技术应用创新工作委员会”于2016年3月4日发起&#xff0c;是专注于软硬件关键技术研发、应用与服务的非营利性组织。作为科技自强的关键力量&#xff0c;信创在我国信息化建设中占据核心地位&…

PS初级|写在纸上的字怎么抠成透明背景?

前言 上一次咱们讲了很多很多很多的抠图教程&#xff0c;这次继续。。。最近有小伙伴问我&#xff1a;如果是写在纸上的字&#xff0c;要怎么把它抠成透明背景。 这个其实很简单&#xff0c;直接来说就是选择通道来抠。但有一点要注意的是&#xff0c;写在纸上的字&#xff0…

深度学习每周学习总结P10(车牌识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 数据链接 提取码&#xff1a;ppv1 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入、查看数据分类&#xff0c;自定义transform…

数据分析必备:一步步教你如何用Pandas做数据分析(19)

1、Pandas 日期函数 Pandas 日期函数操作实例 扩展时间序列&#xff0c;日期功能在财务数据分析中起着重要作用。使用日期数据时&#xff0c;我们经常会遇到以下情况- 生成日期序列 将日期序列转换为不同的频率 2、创建日期范围 通过指定日期和频率使用date.range()函数&…

实验二、网络属性设置《计算机网络》

精神状态 be like&#xff1a;边写边崩溃&#xff0c;越写越得劲儿。 目录 一、实验目的&#xff1a; 二、实验内容 三、实验步骤&#xff1a; 四、实验小结 一、实验目的&#xff1a; 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识&#xff1a; 1、…

ic基础|复位篇02:芯片中的“人生重来枪”!crg之复位系统

大家好&#xff0c;我是数字小熊饼干&#xff0c;一个练习时长两年半的ic打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结&#xff0c;并通过汇总成文章的形式进行输出&#xff0c;相信无论你是在职的还是…

一篇文章带你搞懂C++引用(建议收藏)

引用 6.1 引用概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 比如&#xff1a;李逵&#xff0c;在家称为"铁牛"&#xff0c;江湖上人称&quo…

查询SQL02:寻找用户推荐人

问题描述 找出那些 没有被 id 2 的客户 推荐 的客户的姓名。 以 任意顺序 返回结果表。 结果格式如下所示。 题目分析&#xff1a; 这题主要是要看这null值会不会用&#xff0c;如果说Java玩多了&#xff0c;你去写SQL时就会有问题。在SQL中判断是不是null值用的是is null或…

一文读懂AI时代GPU的内存新宠-HBM

一文读懂GPU最强辅助&#xff1a;HBM HBM&#xff0c;即高带宽内存&#xff0c;是一项领先的3D堆叠DRAM技术&#xff0c;专为高性能计算和图形处理单元&#xff08;GPU&#xff09;设计&#xff0c;满足其对内存带宽和容量的极致需求。该技术由AMD与海力士携手研发&#xff0c;…

聊聊二叉堆、红黑树、时间轮在定时任务中的应用

定时任务作为常用的一种调度方式&#xff0c;在各大系统得到了广泛的应用。 笔者也曾写过两篇关于定时任务框架介绍的文章&#xff1a; 《介绍一下,spring cloud下的另一种定时任务解决方案》《四叉堆在GO中的应用-定时任务timer》 之前都是以如何使用为主&#xff0c;这次从…

【UML用户指南】-10-对高级结构建模-高级类

目录 1、类目 2、高级类 3、可见性 4、实例范围和静态范围 5、抽象元素、叶子元素和多态性元素 6、多重性 7、属性 8、操作 9、模板类 10、标准元素 1、类目 类目 &#xff08;classifier&#xff09;是描述结构特征和行为特征的机制。类目包括类、关联、接口、数据类…

【YOLOv10改进[CONV]】使用DualConv二次创新C2f模块实现轻量化 + 含全部代码和详细修改方式 + 手撕结构图 + 全网首发

本文将使用DualConv二次创新C2f模块实现轻量化,助力YOLOv10目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 DualConv 1 结合33卷积和11卷积核 2 DualConv 3 可视化 二 C2f_DualConv助…

Python 知识图谱补全,Knowledge Graph Completion,基于大模型的知识图谱补全,基于LLMs的KGC任务

今天讲一篇文章《Exploring Large Language Models for Knowledge Graph Completion》 &#xff0c;这篇文章主题&#xff1a;基于大模型做知识图谱补全 1.文章主要思想&#xff1a; 本章描述知识图谱补全中的三个任务&#xff1a;三元组分类、关系预测和实体(链接)预测&…

2024Dragon Knight CTF复现web

穿梭隐藏的密钥 知识点&#xff1a;fuzz技术、ssrf、本地绕过、data伪协议、md4弱比较、数组绕过 首先看看页面的源代码&#xff0c;但是发现f12和鼠标右键都被禁用了 用ctrlu查看&#xff0c;发现一个可疑页面 访问看看&#xff0c;发现还是只有一张图&#xff0c;查看源代…

短视频的景别:成都鼎茂宏升文化传媒公司

短视频的景别&#xff1a;探索视觉艺术的魅力 在短视频的浩瀚海洋中&#xff0c;每一个画面都承载着独特的情感和信息。这些画面&#xff0c;通过不同的景别展现&#xff0c;构成了短视频的叙事基础和视觉美感。成都鼎茂宏升文化传媒公司旨在探讨短视频中景别的运用&#xff0…

揭露:抖音外卖区域代理骗局真相,绝不可错过!

自2023年11月23日抖音发布清退服务商的公告后&#xff0c;由官方认证的抖音外卖平台全国代理正式成为历史&#xff0c;而后&#xff0c;抖音外卖平台区域代理接棒&#xff0c;帮助抖音开拓本地生活市场。在此背景下&#xff0c;抖音外卖平台区域代理的申请人数与日俱增&#xf…