[BJDCTF2020]Easy MD5
进入靶场:

-
只有一个输入框,先看看源码…
-
好像没啥东西
-
看一眼数据包。

-
Response Header中有一个hint
-
是一个SQL语句,看来是一个SQL注入
-
select * from 'admin' where password=md5($pass,true):只需要将password这边变成永真就行了,' or '... -
ffifdyop这个字符串被 md5 哈希了之后会变成276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是' or '
绕过第一步之后,接着来到了第二步:

还是先看下源代码:
<!--
$a = $GET['a'];
$b = $_GET['b'];
if($a != $b && md5($a) == md5($b)){
// wow, glzjin wants a girl friend.
-->
$a = $GET['a']; $b = $_GET['b'];:需要GET方式传入两个参数a和b- 要满足a不等于b但是md5加密之后两个参数弱相等。
- 这里可以用数组的形式去绕过:
?a[]=1&b[]=2
接着又来到了第三步,直接上代码:
<?php
error_reporting(0);
include "flag.php";
highlight_file(__FILE__);
if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
echo $flag;
}
$_POST['param1']!==$_POST['param2']:需要POST方式提交两个参数param1和param2- 两个参数不能相等,但是md5转换后的值还要相等,和第二步一样的处理方式。

GET Flag !!!
文章描述了一次网络安全竞赛中的挑战,涉及SQL注入技术,要求参与者找到方法使得MD5哈希后的密码满足特定条件。首先通过构造or语句绕过SQL查询,然后利用数组参数绕过条件检查,最终目标是使两个不同参数的MD5值相等以获取FLAG。
516

被折叠的 条评论
为什么被折叠?



