当前位置: 首页 > news >正文

题解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.phppublic $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了

相关文章:

题解web

1.[LitCTF 2023]Follow me and hack me 1&#xff09;进入题目环境&#xff0c;提示get传参&#xff0c;post传参 2&#xff09;看看源码&#xff0c;也没啥 3&#xff09;直接用hackbar&#xff0c;传入对应参数即可得到FLAG 3&#xff09;但是扫描出来它后端还有东西&#x…...

在keil5中打开keil4工程的方法

文章目录 1. 打开文件 2. 安装旧版本包 3. 在keil4中打开keil5工程 1. 打开文件 在keil5 MDK的环境下&#xff0c;打开keil4的工程文件&#xff0c;会弹出下图所示的窗口&#xff1a; 参考官网的解释这两个方法分别为&#xff1a; 1. 使用MDK 版本 4 Legacy Pack时&#x…...

【代码随想录算法训练营第37期 第二十四天 | LeetCode77. 组合】

代码随想录算法训练营第37期 第二十四天 | LeetCode77. 组合 一、77. 组合 解题代码C&#xff1a; class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int startIndex){if(path.size() k){result.p…...

探索Linux中的`tree`命令:目录结构的可视化利器

探索Linux中的tree命令&#xff1a;目录结构的可视化利器 在Linux系统中&#xff0c;管理文件和目录结构是一项日常任务。当我们需要快速查看目录的层次结构时&#xff0c;tree命令无疑是一个强大而直观的工具。本文将详细介绍tree命令的功能、用法以及一些实用的选项。 一、…...

ES 面试手册

Elasticsearch是什么&#xff1f; Elasticsearch是一个基于Lucene的搜索和分析引擎&#xff0c;它提供了一个分布式、多租户能力的全文搜索引擎&#xff0c;具有HTTP Web界面和无模式JSON文档。 Elasticsearch中的倒排索引是什么&#xff1f; 倒排索引是搜索引擎的核心结构&a…...

Mybatis缓存的生命周期、使用的特殊情况

以下场景均在Spring Boot程序中&#xff0c;并非手动创建SqlSession使用。 在回答这个问题之前&#xff0c;我们先来回顾一下&#xff0c;Mybatis的一级二级缓存是啥。 一级二级缓存 是什么 一级缓存&#xff08;本地缓存&#xff09;&#xff1a;一级缓存是SqlSession级别的…...

day 37 738.单调递增的数字

738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 示例 1: 输入: n 10 输出: 9示例 2: 输入: n 1234 输…...

【加密与解密】【01】网络安全体系

网络通信OSI模型 物理层&#xff08;Physical&#xff09;链路层&#xff08;DataLink&#xff09;网络层&#xff08;Network&#xff09;传输层&#xff08;Transport&#xff09;会话层&#xff08;Session&#xff09;表示层&#xff08;Presentation&#xff09;应用层&a…...

nvm,node不是内部命令,npm版本不支持问题(曾经安装过nodejs)

nvm安装后nvm -v有效&#xff0c;node指令无效 环境变量配置无问题 推荐方案 下载你需要的node版本 Index of /dist/ (nodejs.org) 下载后解压到你的nvm存储版本的位置 cmd进入切换你的使用版本&#xff08;此时你的nodejs是从网上下载的&#xff0c;npm文件是存在的&…...

从入门到精通:基础IO

引言 在编程的世界里&#xff0c;文件输入输出&#xff08;IO&#xff09;是与操作系统交互的重要方式。无论你是开发应用程序、处理数据&#xff0c;还是管理系统资源&#xff0c;掌握文件IO操作都是必不可少的。本篇博客将带你深入了解C语言中的基础IO操作&#xff0c;从入门…...

网络空间安全数学基础·多项式环与有限域

5.1 多项式环&#xff08;掌握&#xff09; 5.2 多项式剩余类环&#xff08;理解&#xff09; 5.3 有限域&#xff08;熟练&#xff09; 5.1 多项式环 定义&#xff1a;设F是一个域&#xff0c;称是F上的一元多项式&#xff0e; 首项&#xff1a;如果an≠0&#xff0c;则称 a…...

路由器重启真的好吗?多久重启一次更好?

前言 小白前段时间发现自己家的OpenWRT软路由上网特别慢&#xff0c;有时候通话还有点卡顿。 然而有个朋友用的普通路由器也有类似的问题&#xff0c;而且有时候根本上不去网。 解决的办法很简单&#xff1a;重启路由器。 重启路由器&#xff1f; 但路由器重启是真的好吗&a…...

删除目录

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 删除目录可以通过使用os模块提供的rmdir()函数实现。通过rmdir()函数删除目录时&#xff0c;只有当要删除的目录为空时才起作用。rmdir()函数的基本语…...

HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN判断【10道题】

1.部署BGP/MPLSIP VPN时,当两个VPN有共同的站点,则该共同站点一定不能与两个VPN其他站点使用重叠的地址空间。 2.如图所示&#xff0c;运营商BGP/MPLSIP VPN骨干网通过LDP构建LSP&#xff0c;若想实现用户X两个站点之间通过BGP/MPLSIP VPN网络互通&#xff0c;则PE1和PE2之间必…...

【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言一、变量1.1 基础知识1.2 包级变量的声明形式深入解析&#x1f4cc; 声明并同时显式初始化&#x1f4cc; 声明但延迟初始化&#x1f4cc; 声明聚类与就近原则 1.3 局部变量的声明形式深入探讨&#x1f4cc; 延迟初始化的…...

python记录之bool

在Python中&#xff0c;bool 是一个内置的数据类型&#xff0c;用于表示逻辑值&#xff1a;True 或 False。虽然这个数据类型看起来很简单&#xff0c;但在编程中它扮演着至关重要的角色&#xff0c;特别是在条件语句、循环以及许多其他逻辑操作中。以下是对Python bool 的深入…...

加密经济浪潮:探索Web3对金融体系的颠覆

随着区块链技术的快速发展&#xff0c;加密经济正在成为全球金融领域的一股新的浪潮。而Web3作为下一代互联网的代表&#xff0c;以其去中心化、可编程的特性&#xff0c;正深刻影响着传统金融体系的格局和运作方式。本文将深入探讨加密经济对金融体系的颠覆&#xff0c;探索We…...

list的简单模拟实现

文章目录 目录 文章目录 前言 一、使用list时的注意事项 1.list不支持std库中的sort排序 2.去重操作 3.splice拼接 二、list的接口实现 1.源码中的节点 2.源码中的构造函数 3.哨兵位头节点 4.尾插和头插 5.迭代器* 5.1 迭代器中的operator和-- 5.2其他迭代器中的接口 5.3迭代器…...

深入解析Java HashMap的putVal方法

Java中的HashMap是我们在开发中经常使用的集合之一&#xff0c;它提供了基于哈希表的数据存储方式&#xff0c;使得对数据的插入、删除和查找操作都具有较高的效率。在本文中&#xff0c;我们将深入解析HashMap中的putVal方法&#xff0c;揭示其内部工作原理。通过对代码的逐行…...

使用智谱 GLM-4-9B 和 SiliconCloud 云服务快速构建一个编码类智能体应用

本篇文章我将介绍使用智谱 AI 最新开源的 GLM-4-9B 模型和 GenAI 云服务 SiliconCloud 快速构建一个 RAG 应用&#xff0c;首先我会详细介绍下 GLM-4-9B 模型的能力情况和开源限制&#xff0c;以及 SiliconCloud 的使用介绍&#xff0c;最后构建一个编码类智能体应用作为测试。…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...