首页 > 其他分享 >[SWPUCTF 2021 新生赛]jicao,[SWPUCTF 2021 新生赛]easy_md5

[SWPUCTF 2021 新生赛]jicao,[SWPUCTF 2021 新生赛]easy_md5

时间:2024-10-15 19:51:50浏览次数:3  
标签:name SWPUCTF flag 新生 json 2021 md5

[SWPUCTF 2021 新生赛]jicao

<?php
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>

首先代码审计,用post方式传入一个id,它的值要为wllmNB,用get方法传入一个json,同时会对他进行json解码,解码后值为wllm,则输出flag。

我们来了解一下json对象。

json对象的值只能为:数字(整数或浮点数),字符串(要用双引号包裹),逻辑值(true 或 false),数组(在方括号中),对象(在花括号中),null (空)。

例如:

"grade":90,

"name":"peter";

"student":true;

所以这里我们传入json的值要符合他的规则

得到flag:

NSSCTF{f26c1ec6-17f2-4903-b4bc-e8d8b894bb5d}

[SWPUCTF 2021 新生赛]easy_md5

 <?php 
 highlight_file(__FILE__);
 include 'flag2.php';    //包含了flag2.php这个文件
 
if (isset($_GET['name']) && isset($_POST['password'])){ 
    $name = $_GET['name'];    // 用get方式传入name
    $password = $_POST['password'];    //用post方式传入password
    if ($name != $password && md5($name) == md5($password)){
        echo $flag;  //如果传入的name和password的值不相等,且他们的md5值相等,就输出flag。
    }
    else {
        echo "wrong!";
    }
 
}
else {
    echo 'wrong!';
}
?>
wrong!

代码审计如上

这里我们可以用两种方法,一种是md5绕过,你需要去寻找两个值不相同的但是md5后的值相同的,给你列举几个:


QNKCDZO
240610708
s878926199a
s155964671a

第二种方式是采用数组绕过,payload很简单:

?name[]=1

password[]=2

这样就能使这段代码执行,输出flag。

if ($name != $password && md5($name) == md5($password)){
    echo $flag;
}

NSSCTF{554fa687-013e-4926-9df8-4903f29398ab}

标签:name,SWPUCTF,flag,新生,json,2021,md5
From: https://blog.csdn.net/2301_80871705/article/details/142962478

相关文章

  • [SWPUCTF 2022 新生赛]1z_unserialize
    <?phpclasslyh{public$url='NSSCTF.com';public$lt;public$lly;function__destruct(){$a=$this->lt;$a($this->lly);//这里相当于(this->lt)(this->lly)即lt(lly)。}......
  • [鹤城杯 2021]EasyP
    首先,了解一下里面几个不熟悉的函数。1.$_SERVE['PHP_SELF'],读取的是当前执行脚本的文件名,意思就是读取文件夹下的一个文件。             例:2.$_SERVER['REQUEST_URI'],是取得当前URL的路径地址3.basename()题解:想办法绕/utils\.php\/*$/i......
  • [SWPUCTF 2021 新生赛]re1
    把它的附件下载下来,发现是这样的。接着把它拖到这里面去查看,发现它没有壳,且是64位的,我们用64位的ida打开。用f5查看伪代码从代码中可以看出,未知str1。在两个for循环中,把str1中ASCII码值为101(e)和97(a)分别换成了3和4,所以str1为{easy_reverse}即flag为:NSSCTF{easy_reverse......
  • [SWPUCTF 2021 新生赛]pop
    先进行代码审计:classw44m{private$admin='aaa';protected$passwd='123456';//!!!有private时,一定要进行url编码,否则有可能会出错publicfunctionGetflag(){if($this->admin==='w44m'&&$this->passwd===&#......
  • CTF杂项——[安徽省赛 2021]misc签到
    kali分离出一个压缩包 需要密码010打开flag.png文件头是FFD8FFE0  说明是jpeg文件  但题目给的文件后缀是.png  把后缀修改成.jpg查看属性  找到密码  this_is_password得到flag......
  • java毕业设计-基于springboot+vue的高校新生入学报道系统设计和实现,基于springboot的
    博主介绍:✌️码农一枚,专注于大学生项目实战开发、讲解和毕业......
  • 智能工厂的软件设计 “原力”和“新生力量” 之1
    本文要点本篇“智能工厂的设计软件”中的双重客体“程序Program”(姑且认为是模拟人工智能-一具体问题域具体分析得到的单个实体)的天生“原力”(对AI的初始假设)的认识以及出生后这些“原力”如何以及怎样更新(假设检验--一个给定组织中的集体)并生成“新生力量”(智能增强-......
  • 智能工厂的软件设计 “原力”和“新生力量” 之2
    (修改了1中的部分文字,还增加了部分内容。重新讨论)Q9、本篇“智能工厂的设计软件”中的双重客体“程序Program”(姑且认为是模拟人工智能-一具体问题域具体分析得到的单个实体)的天生“原力”(对AI的初始假设)的认识以及出生后这些“原力”如何以及怎样更新(假设检验--一个给定......
  • [PA2021] Od deski do deski 题解
    T1[PA2021]Oddeskidodeski发现合法的字符串一定是类似\(\texttt{aa...aabb...bbcc...cc}\)的形式,也就是若干个\(\texttta\)、若干个\(\textttb\) 和若干个\(\textttc\) 等组成的形式。如果当前选好的串\(S_1\)是合法的,且有另一个合法的串\(S_2\),那么显然\(S_1......
  • [SWPUCTF 2023 秋季新生赛]Shellcode WriteUp
    题目地址:https://www.nssctf.cn/problem/4546主要思路:利用Pwntools发送字节码调用执行execve("/bin/sh",NULL,NULL)实现要点:一定要添加context.binary='./shellcode'解释:pwntools的一个设置,用来指定目标二进制文件,以便于获取它的相关信息,如系统架构,操作系统类型等细节ex......