题解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了

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

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

相关文章

Vue 学习笔记 总结

Vue.js 教程 | 菜鸟教程 (runoob.com) 放一下课上的内容 Vue练习 1、练习要求和实验2的用户注册一样&#xff0c;当用户输入后&#xff0c;能在下方显示用户输入的各项内容&#xff08;不需要实现【重置】按钮&#xff09; 2、实验报告中的实验小结部分来谈谈用JS、jQuery和…

618数码产品有什么推荐?四大2024“宝藏”数码产品推荐!

随着618购物节的热情逐渐升温&#xff0c;你是否在繁多且诱人的商品海洋中迷失方向&#xff0c;难以找到那最心仪的宝贝&#xff1f;团团在此特别为你精心挑选了一系列经过亲身体验的优质好物。这些推荐不仅时尚前沿&#xff0c;更贴合你的日常生活需求&#xff0c;确保实用与品…

霸气的短视频:成都科成博通文化传媒公司

霸气的短视频&#xff1a;瞬间的力量与魅力 在数字化浪潮中&#xff0c;短视频以其独特的魅力迅速崛起&#xff0c;成为社交媒体的新宠。而在众多短视频中&#xff0c;那些充满霸气、让人热血沸腾的作品&#xff0c;总能引起广泛的关注和讨论。成都科成博通文化传媒公司将从内…

CSS基础知识汇总

目录 CSS 基础知识1. CSS 的基本结构2. 选择器3. 常用 CSS 属性4. CSS 单位5. CSS 盒模型 总结 学习 CSS&#xff08;Cascading Style Sheets&#xff09;是前端开发的重要部分&#xff0c;它用于控制网页的样式和布局。以下是学习 CSS 过程中需要掌握的基本概念、符号和对应的…

Vue08-数据代理

一、Object.defineProperty() Object.defineProperty() 是 JavaScript 中的一个方法&#xff0c;用于直接在一个对象上定义一个新属性&#xff0c;或者修改一个对象的现有属性&#xff0c;并返回这个对象。 这个方法允许你精确地控制一个对象的属性&#xff0c;包括它的值、是…

数据库存储过程和锁机制

存储过程 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的&#xff0c;存储过程思想上很简单,就是数据库SQL语言层面的代码封装与有重用 …

Flutter开发效率提升1000%,Flutter Quick教程之对Widget进行删除,剪切,粘贴

一&#xff0c;删除操作 1&#xff0c;首先我们选中要删除的Widget。 2&#xff0c;在左边的侧边栏&#xff0c;点击删除按钮&#xff0c;即可完成对组件的删除操作。 二&#xff0c;剪切。剪切是相同的道理&#xff0c;都是先选中&#xff0c;再点击对应的按钮。 1&#xff…

javaWeb4 Maven

Maven-管理和构建java项目的工具 基于POM的概念 1.依赖管理&#xff1a;管理项目依赖的jar包 &#xff0c;避免版本冲突 2.统一项目结构&#xff1a;比如统一eclipse IDEA等开发工具 3.项目构建&#xff1a;标准跨平台的自动化项目构建方式。有标准构建流程&#xff0c;能快速…

java 原生http服务器 测试JS前端ajax访问实现跨域传post数据

后端 java eclipse 字节流转字符 package Httpv3;import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer;import java.io.IOException; import java.i…

【全开源】JAVA打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车源码

&#xff1a;构建便捷出行新体验 一、引言&#xff1a;探索打车系统小程序源码的重要性 在数字化快速发展的今天&#xff0c;打车系统小程序已成为我们日常生活中不可或缺的一部分。它以其便捷、高效的特点&#xff0c;极大地改变了我们的出行方式。而背后的关键&#xff0c;…

KOL+UGC:解锁品牌内容营销新策略,增强用户参与与互动

在当今数字化时代&#xff0c;品牌与受众之间的互动性和参与感变得至关重要。其中&#xff0c;KOL和UGC&#xff08;用户生成内容&#xff09;的结合&#xff0c;为品牌创造了一种全新的内容创作模式。这种模式不仅增强了内容的吸引力&#xff0c;还极大地提升了品牌与受众之间…

win键盘键位映射:欧版键盘->国内布局|是否应该买国外版笔记本?

最近买了个欧版笔记本电脑&#xff0c;键盘是欧版键盘&#xff1a; 键盘上的按钮实体和国内不完全一样键盘按钮上印的字母符号和国内不完全一样 具体差异 如图&#xff1a; shift处欧版是两个按键。可通过键盘键位映射解决。回车Enter、| 、布局不同。非常别扭&#xff0c;…

跨境反向海淘系统:业务流程解析与未来发展展望

随着全球化的深入发展和互联网技术的飞速进步&#xff0c;跨境购物已经成为越来越多消费者日常生活中的一部分。在这个过程中&#xff0c;反向海淘系统以其独特的优势&#xff0c;逐渐崭露头角&#xff0c;成为跨境电商领域的新星。作为一名在跨境反向海淘系统业务中耕耘了10年…

编写程序,提示用户输入以米/秒(m/s)为单位的速度v和以米/秒的平方(m/s)为单位的加速度 a,然后显示最短跑道长度。

(物理:求出跑道长度)假设一个飞机的加速度是a而起飞速度是v&#xff0c;那么可以使用下 面的公式计算出飞机起飞所需的最短跑道长度: 编写程序&#xff0c;提示用户输入以米/秒(m/s)为单位的速度v和以米/秒的平方(m/s)为单 位的加速度 a&#xff0c;然后显示最短跑道长度。下面…

LCM — Least Common Multiple 最小公倍数

因为任何一个数都可以表示为若干个质数幂的乘积。 比如75 3*5*5&#xff0c;即 2^0 * 3^1 * 5^2 * 7^0 ... 那么对于两个数来说&#xff0c;gcd就是他们取每个质数的较小幂的乘积&#xff0c;lcm则相反。显然&#xff0c;这些幂加起来就是他们乘积。 gcd(a,b) * lcm(a,b) a…

CorelDRAW2024发布更新啦!设计师们的得力助手

在数字化的今天&#xff0c;视觉设计已经成为我们生活中不可或缺的一部分。从手机界面到广告海报&#xff0c;从网页布局到包装设计&#xff0c;每一个细节都离不开设计师们的专业与创意。然而&#xff0c;面对日益增长的设计需求和不断提升的审美标准&#xff0c;许多设计师开…

【算法专题--栈】最小栈--高频面试题(图文详解,小白一看就会!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐解题方法--1 ⭐解题方法--2 四、总结 五、共勉 一、前言 最小栈这道题&#xff0c;可以说是--栈专题--&#xff0c;比较经典的一道题&#xff0c;也是在面试中频率较高的一道题目&#xff0c;通常在面试中&#xff0c;面试官可…

OpenAI发布GPT-4思维破解新策略,Ilya亦有贡献!

OpenAI正在研究如何破解GPT-4的思维&#xff0c;并公开了超级对齐团队的工作&#xff0c;Ilya Sutskever也在作者名单中。 论文地址&#xff1a;https://cdn.openai.com/papers/sparse-autoencoders.pdf 代码&#xff1a;https://github.com/openai/sparse_autoencoder 特征可…

【Unity游戏制作】地精寻宝Gnome‘s Well That Ends Well卷轴动作游戏【一】场景搭建

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 专栏交流&#x1f9e7;&…

Redisson分布式锁原理解析

前言 首先Redis执行命令是单线程的&#xff0c;所以可以利用Redis实现分布式锁&#xff0c;而对于Redis单线程的问题&#xff0c;是其线程模型的问题&#xff0c;本篇重点是对目前流行的工具Redisson怎么去实现的分布式锁进行深入理解&#xff1b;开始之前&#xff0c;我们可以…