PHP弱比较-SHA1PHP弱比较-MD5(练习)PHP弱比较-MD5和SHA1(练习)

[题目信息]:

题目名称题目难度
PHP弱比较-SHA11

[题目考点]:

PHP是弱类型语言,不需要明确的定义变量的类型,变量的类型根据使用时的上下文所决定,也就是变量会根据不同表达式所需要的类型自动转换,比如求和,PHP会将两个相加的值转为long、double再进行加和。每种类型转为另外一种类型都有固定的规则,当某个操作发现类型不符时就会按照这个规则进行转换,这个规则正是弱类型实现的基础。

[Flag格式]:

SangFor{w40Cuux7R6M9eVFqFcr9Vzln-skAYeeg}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2048

[题目writeup]:

1、实验主页

2、源码分析

<?php
highlight_file(__FILE__);
include("flag.php");

if(isset($_POST[‘v1’]) && isset($_GET[‘v2’])){
$v1 = $_POST[‘v1’];
$v2 = $_GET[‘v2’];
if(sha1($v1)==sha1($v2)){
echo $flag;
}
}
?>

分析代码,需要使用POST方法传参v1,GET方法传参v2

只需要sha1($v1)==sha1($v2)时,即v1=v2便可输出flag











[题目信息]:

题目名称题目难度
PHP弱比较-MD51

[题目考点]:

PHP是弱类型语言,不需要明确的定义变量的类型,变量的类型根据使用时的上下文所决定,也就是变量会根据不同表达式所需要的类型自动转换,比如求和,PHP会将两个相加的值转为long、double再进行加和。每种类型转为另外一种类型都有固定的规则,当某个操作发现类型不符时就会按照这个规则进行转换,这个规则正是弱类型实现的基础。

[Flag格式]:

SangFor{R0LZhjebBvov49rbSdf9iwVWoNVV9awV}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2044

[题目writeup]:

1、实验主页

2、源码分析

<?php
highlight_file(__FILE__);
include("flag.php");
if (isset($_POST['a']) and isset($_POST['b'])) {
    if ($_POST['a'] != $_POST['b'])
        if (md5($_POST['a']) === md5($_POST['b']))
            echo $flag;
    else
        print 'Wrong.';
}
?>

payload:

a[]=1&b[]=2








[题目信息]:

题目名称题目难度
PHP弱比较-MD5和SHA11

[题目考点]:

PHP是弱类型语言,不需要明确的定义变量的类型,变量的类型根据使用时的上下文所决定,也就是变量会根据不同表达式所需要的类型自动转换,比如求和,PHP会将两个相加的值转为long、double再进行加和。每种类型转为另外一种类型都有固定的规则,当某个操作发现类型不符时就会按照这个规则进行转换,这个规则正是弱类型实现的基础。

[Flag格式]:

SangFor{kAFh2ixDHMZlpUUQf_28rf8emXYsSBYb}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2025

[题目writeup]:

1、实验主页

2、源码分析

<?php
highlight_file(__file__);
include("test.php");
$var1=$_GET['var1'];
$var2=$_GET['var2'];
var_dump(md5($var1));
var_dump(md5($var2));
if( ($var1 != $var2) && (md5($var1) === md5($var2)) && (sha1($var1)=== sha1($var2)) ){
    echo $s;
    echo $f;
    echo $r;
    }
?>

析代码逻辑,变量var1和var2的值不等,但MD5和哈希加密后的值需要相等,且这里用的是3个等号的强等,所以这里只有用数组绕过。因为MD5和sha1()对数组处理时返回值都为NULL,NULL===NULL,绕过。

?var1[]=1&var2[]=2

获取到提示语句

Theres a variable called test!!!Theres a value called sangfor!!!Congratulations on finding it!!!

访问flag.php

需要post一个值进去,联想到上一步给的提示,post一个test变量,赋值为sangfor,成功得到flag。

http://localhost/flag.php
POST:
test=sangfor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值