[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 !!!
文章出处登录后可见!
已经登录?立即刷新