ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SWPUCTF 2021 新生赛 部分赛题复现

2022-06-27 21:36:12  阅读:457  来源: 互联网

标签:SWPUCTF int 赛题 json 2021 0e 传入 id md5


jicao

这是一道php代码审计的题,比较简单,但也学到了一个json格式的知识,题目代码如下:

<?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;}
?>

分析源码可知,要求我们传入两个参数,一个用get方式传入json,一个用post方式传入id。传入id很简单,直接id=wllmNB就好了,下面我们介绍一下json和json_decode这个函数

我感觉json它的书写格式和python中的字典差不多,如json = '{"a":1,"b":2,"c":3,"d":4,"e":5}',它是一种类似于对应的关系

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>

以上程序会运行出:

object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

由此可以猜测,题目中的

$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")

这两行的意思就是传入的json的值是x:wllm,由此我们得到payload如下:

执行即得到flag:

easy_md5

<?php 
 highlight_file(__FILE__);
 include 'flag2.php';
 
if (isset($_GET['name']) && isset($_POST['password'])){
    $name = $_GET['name'];
    $password = $_POST['password'];
    if ($name != $password && md5($name) == md5($password)){
        echo $flag;
    }
    else {
        echo "wrong!";
    }
 
}
else {
    echo 'wrong!';
}
?> 

这是一道md5弱类型比较,有两种解决办法

md5弱类型比较

0e绕过

弱比较会把0exxxx当做科学计数法,不管后面的值为任何东西,0的任何次幂都为0

只要两个变量经过md5加密之后前两位都变成0e就可以成功绕过,以下一些字符串的md5值前两位是0e

QNKCDZO
240610708
s878926199a
s155964671a
s21587387a

可以用前两个,payload如下:

数组绕过

md5()函数计算的是一个字符串的哈希值,对于数组则返回false

所以我们也可以这样传:

两种方法都可以得到flag

标签:SWPUCTF,int,赛题,json,2021,0e,传入,id,md5
来源: https://www.cnblogs.com/Athena-ydy/p/16417563.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有