NSSCTF中的web学习(md5())

devtools/2024/9/23 8:10:15/

目录

MD5的学习

[BJDCTF 2020]easy_md5

[LitCTF 2023]Follow me and hack me

[LitCTF 2023]Ping

[SWPUCTF 2021 新生赛]easyupload3.0

[NSSCTF 2022 Spring Recruit]babyphp


MD5的学习

md5()函数:

md5($a):返回a字符串的散列值

md5($a,TRUE):返回a字符串散列值的16进制转ascii码值

md5函数的语法:

可参考:PHP md5()函数详解,PHP计算MD5,md5()绕过,md5()漏洞原理剖析-CSDN博客

[BJDCTF 2020]easy_md5

1.查看源码什么都没有,尝试之后也不是sql,抓包之后看到响应头hint

2.响应头是有关md5加密的,输入的密码会被md5加密,需要绕过,参考wp,得到ffifdyop可以绕过md5的加密,原因:ffifdyop加密之后的这一串,经过十六进制的转换,可以变为  ’or’6乱码,然后实现绕过

3.传入后得到以下页面

4.查看源代码,很明显是一个php弱比较以及md5函数的绕过

5.这里我使用数组绕过,数组绕过之后,跳转到如下页面

6.代码依旧是md5函数的绕过,只是传参方式是post,利用数组绕过,得到flag

[LitCTF 2023]Follow me and hack me

1.根据提示传参,得到flag

[LitCTF 2023]Ping

1.提示输入IP地址,输入127.0.0.1,发现有回显

2.输入ping的命令执行,发现提示只能输入ip

3.查看源代码,发现存在过滤,是前端过滤,我们直接禁用JS即可

4.禁用js之后,再运用命令,发现有回显

5.查看根目录,发现flag

6.使用cat命令查看flag

[SWPUCTF 2021 新生赛]easyupload3.0

1.根据提示,需要上传一个图片

2.上传成功之后,经过尝试,发现是.htaccess解析文件,新建一个文件夹,在里面输入SetHandler application/x-httpd-php,它会让后面传入的jpg文件中的php语句都可以执行

3.接着就上传jpg木马文件

4.使用蚁剑连接,得到flag

[NSSCTF 2022 Spring Recruit]babyphp

1.进入页面,发现是php代码

翻译代码为:
<?php
highlight_file(__FILE__);
include_once('flag.php'); //这行代码将包含(或导入)flag.php 文件。这意味着 flag.php 文件中定义的任何变量或函数都可以在当前文件中使用。
if(isset($_POST['a'])&&!preg_match('/[0-9]/',$_POST['a'])&&intval($_POST['a'])){ //这是一个 if 语句,它包含三个条件:1.isset($_POST['a']):检查是否有一个名为 a 的 POST 请求参数。2.!preg_match('/[0-9]/',$_POST['a']):使用正则表达式检查 $_POST['a'] 是否不包含任何数字。3.intval($_POST['a']):将 $_POST['a'] 转换为整数,并检查其是否为真(即非零)。if(isset($_POST['b1'])&&$_POST['b2']){ //检查是否有一个名为 b1 的 POST 请求参数,并且 b2 参数也存在.if($_POST['b1']!=$_POST['b2']&&md5($_POST['b1'])===md5($_POST['b2'])){ 、、这是一个嵌套 if 语句,它检查 b1 和 b2 的值是否不同,但它们的 MD5 哈希值是否相同。      if($_POST['c1']!=$_POST['c2']&&is_string($_POST['c1'])&&is_string($_POST['c2'])&&md5($_POST['c1'])==md5($_POST['c2'])){ 、、又一个嵌套 if 语句,这次它检查 c1 和 c2 的值是否不同,但它们都是字符串,并且它们的 MD5 哈希值相同。echo $flag; //如果这些条件都满足,代码将输出 $flag 变量的值,该变量从 flag.php 文件中导入}else{echo "yee"; //如果第四个if中的条件不满足,它将输出 "yee"。}}else{echo "nop"; //如果第四个if中的条件不满足,它将输出 "nop"。}}else{echo "go on"; //如果第二个if的两个条件都满足,代码将执行 if 语句块中的代码。否则,它将输出 "go on"。}
}else{echo "let's get some php";
} 

2.这个题主要让a,b,c都满足条件就能得到flag,其中a涉及正则表达式,就使用数组绕过,b使用数组进行md5函数的绕过,c必须是字符串,就不能用数组绕过,需要用md5的字符串绕过


http://www.ppmy.cn/devtools/39139.html

相关文章

Tomcat同时支持http及https

Tomcat同时支持http及https 1、Tomcat同时支持http及https2、Springboot同时支持http及https 1、Tomcat同时支持http及https <Connector port"8443" protocol"org.apache.coyote.http11.Http11NioProtocol" maxThreads"150" SSLEnabled"…

太速科技-FMC377_双AD9361 射频收发模块

FMC377_双AD9361 射频收发模块 FEATURES&#xff1a; ◆ Coverage from 70M ~ 6GHz RF ◆ Flexible rate 12 bit ADC/DAC ◆ Fully-coherent 4x4 MIMO capability, TDD/FDD ◆ RF ports: 50Ω Matched ◆ support both internal reference and exter…

C++引用详解

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

Linux 操作系统线程1

目录 一、线程 1.1线程的基本概念 1.2 线程相关的API函数 1.2.1 线程的创建 1.2.2 线程退出 1.2.3 线程等待函数 1.2.4 获取线程ID 1.2.5 线程取消 1.2.6 线程的清理函数 一、线程 1.1线程的基本概念 线程是属于进程&#xff1b;一个进程可以有多个线程&#xff…

密码学《图解密码技术》 记录学习 第十五章

目录 十五章 15.1本章学习的内容 15.2 密码技术小结 15.2.1 密码学家的工具箱 15.2.2 密码与认证 15.2.3 密码技术的框架化 15.2.4 密码技术与压缩技术 15.3 虚拟货币——比特币 15.3.1 什么是比特币 15.3.2 P2P 网络 15.3.3地址 15.3.4 钱包 15.3.5 区块链 15.3.…

Top K 问题

Top K 问题常见形式: 给10万个单词,找第K大词频的单词 给10玩个数,找第K大的数 方法1: 使用堆 建堆 时间复杂度为 O(n) , 堆排序 为 O(logn) , 那么堆初始化的时间复杂度 是 nlog(n) 使用c 标准库 priority_queue(默认建大堆) 大堆降序 int main() {priority_queue<i…

预编码算法介绍及优缺点

预编码算法介绍 介绍优缺点 介绍 预编码算法是一种用于无线通信系统中的技术&#xff0c;其基本思想是通过矩阵运算将经过调制的符号信息流和信道状态信息进行有机结合&#xff0c;变换成适合当前信道的数据流&#xff0c;再通过天线发送出去。这种技术的主要目的是在发送端对…

数据库(MySQL)基础:多表查询(一)

一、多表关系 概述 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种联系&#xff0c;基本上分为三种&#xff1a;…