[BJDCTF 2020]easy_md5、[HNCTF 2022 Week1]Interesting_include、[GDOUCTF 2023]泄露的伪装

本文主要是介绍[BJDCTF 2020]easy_md5、[HNCTF 2022 Week1]Interesting_include、[GDOUCTF 2023]泄露的伪装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

[BJDCTF 2020]easy_md5

ffifdyop

[SWPUCTF 2021 新生赛]crypto8

[HNCTF 2022 Week1]Interesting_include

php://filter协议

[GDOUCTF 2023]泄露的伪装


[BJDCTF 2020]easy_md5

尝试输入一个1,发现输入的内容会通过get传递但是没有其他回显

观察一下响应头,可以看到Hint,即后端处理的SQL语句:

select * from 'admin' where password=md5($pass,true)//md5函数(string,raw)用法:string:字符串,必选参数raw:可选参数,通过post传递True    //原始16字符二进制数False   //默认32字符十六进制数

什么是hint?

hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。

ffifdyop

nssctf web_[nctf 2018]签到题-CSDN博客

sql查询语句目的是     passdword=传递的值

在sql语句中 or 左右一边为true则语句都为true(或逻辑)

这也是or 1 = 1 的由来,所以在这里要尝试构造带or的参数

or 对应的16进制:276f7227

ffifdyop字符串被 md5 哈希了之后会变成276f7227 36c95d99e921722cf9ed621c

字符串前几位刚好是 ‘ or ‘6,并且 Mysql 又会把 hex 转成 ascii 解释,因此拼接之后的形式是

select * from ‘admin’ where password=''or' 6xxxxx'
//xxxxx指代任意字符

此处raw参数是True,意为返回原始16字符二进制格式。

将ffifdyop传入,得到新环境

查看源代码,发现GET传参a!=b,但是它们的MD5值相等,且此处为(==)弱比较类型

原理见[SWPUCTF 2021 新生赛]jicao、easy_md5-CSDN博客

(1)用数组绕过 

 (2)用科学计数法0e绕过

又见一个新环境,POST传参了param1!=param2 但是它们的MD5值相等,且此处为(===)强比较类型,使用数组绕过

[SWPUCTF 2021 新生赛]crypto8

下载附件,查看资料知其为UUencode编码

[HNCTF 2022 Week1]Interesting_include

POST传参filter,包含在flag.php文件里

正则过滤了 flag ,但是没有flag又会返回错误

php://filter协议

于是使用php://filter协议,读取源代码并进行base64编码输出。

php://filter/convert.base64-encode/resource=文件路径

构造payload:

?filter=php://filter/convert.base64-encode/resource=flag.php

base64解码得到flag

[GDOUCTF 2023]泄露的伪装

使用dirsearch扫描,发现状态码为200的/www.rar目录,url下载压缩包

访问路径/orzorz.php得到新环境,GET传参cxk

error_reporting(0);:这行代码设置错误报告级别为0,意味着在运行时不会显示任何错误信息。通常用于生产环境中,以防止敏感信息泄露给用户。

file_get_contents($cxk)函数:读取 $cxk 变量中指定的 URL 或文件的内容。

这就需要传入一个文件,如果文件内容等于"ctrl",则返回flag

利用date://协议构造payload:

?cxk=data://text/plain,ctrl

这篇关于[BJDCTF 2020]easy_md5、[HNCTF 2022 Week1]Interesting_include、[GDOUCTF 2023]泄露的伪装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991154

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

C# Hash算法之MD5、SHA

MD5我们用的还是比较多的,一般用来加密存储密码。但是现在很多人觉MD5可能不太安全了,所以都用上了SHA256等来做加密(虽然我觉得都差不多,MD5还是能玩)。 还是跟上一篇说的一样,当一个算法的复杂度提高的同时肯定会带来效率的降低,所以SHA和MD5比较起来的话,SHA更安全,MD5更高效。 由于HASH算法的不可逆性,所以我认为MD5和SHA主要还是应用在字符串的"加密"上。 由于

控制台和MFC中内存泄露工具vld的使用

最近想检测下项目中内存泄露的情况,选中了vld这款。在查找使用方法的时候,大都是控制台下的示例,添加到main函数所在的源文件上。换成MFC就纠结了,不知道添加到哪里去。本文记录控制台和MFC中的使用vld过程。    vld资源:    1)、大家可以移步下边的网址下载:     http://vld.codeplex.com/releases/view/82311    2

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

Android的登陆MD5加密

1:导入代码 public class MD5Util {private static final String TAG = "MD5Util";/**** MD5加码 生成32位md5码*/public static String string2MD5(String inStr) {Log.e(TAG, "string2MD5: -------------------------");Mess

新型 RAMBO 侧信道攻击通过 RAM 无线电波泄露数据

内盖夫本·古里安大学的研究人员发现了一种从隔离系统中泄露敏感数据的方法。 引入了一种称为 RAMBO(基于 RAM 的电磁隐蔽通道)的新型攻击技术。 该攻击利用计算机 RAM 产生的电磁辐射,使攻击者能够窃取加密密钥、密码、生物特征数据和文件等信息。 即使在系统与外部网络物理隔离的环境中,这种攻击也能实现。 信息泄露速度达 7.5 kB/分钟 该研究由 Morde

2023 CCPC(秦皇岛)现场(第二届环球杯.第 2 阶段:秦皇岛)部分题解

所有题目链接:Dashboard - The 2023 CCPC (Qinhuangdao) Onsite (The 2nd Universal Cup. Stage 9: Qinhuangdao) - Codeforces 中文题面: contest-37054-zh.pdf (codeforces.com) G. Path 链接: Problem - G - Codeforces

11991 - Easy Problem from Rujia Liu?

题意: 输入一串整型数列,再输入两个数k,v,输出第k个v的序号。不存在则输出0,如第一个样例 8 41 3 2 2 4 3 2 11 3 //第1个3,序号为2,输出22 4 //第2个4,不存在,输出03 2 //第3个2,序号为7,输出74 2 思路: struct num {