开卷看题
题干很重要,先记一记
经典的登录框
寻找线索
根据标题和URL路径提示,习惯性的访问了一下flag.php发现存在且只有一行,很可能是flag变量的定义
为求谨慎,扫描了一下目录,发现只有index和flag两个页面
看看题干,首先说点了login为什么没反应,看看源码呗
你个糟老头子坏得很,这要是有反应就见鬼了
看来这题要么就是爆破要么就是注入,为了方便起见我们先用BP自动修改HTML
搞定之后BP就会自动替换内容,方便操作
接下来就是尝试时间了,爆破注入全都不好使,看来应该不是从这里入手
陷入迷雾
题干的第一句话已经解决了(虽然没什么用)
看来破案的重点就是第二个提示:hint,这个单词究竟有什么深邃的含义呢?
就在万般无奈的时候,看了一眼桌上的A4纸,突然想到了一个单词:margin
记得以前的题目中margin是作为参数的,那么这次会不会也是
尝试提交hint参数
这hint可真够劲,GOOD,GOOD,six six six
代码分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?php error_reporting(0); include_once("flag.php"); $cookie = $_COOKIE['ISecer']; if (isset($_GET['hint'])) { show_source(__FILE__); } elseif (unserialize($cookie) === "$KEY") { echo "$flag"; } else {
?>
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Login</title> <link rel="stylesheet" href="admin.css" type="text/css"> </head> <body> <br> <div class="container" align="center"> <form method="POST" action="#"> <p><input name="user" type="text" placeholder="Username"></p> <p><input name="password" type="password" placeholder="Password"></p> <p><input value="Login" type="submit"/></p> </form> </div> </body> </html>
<?php
}
$KEY = 'ISecer:www.isecer.com'; ?>
|
总结一下:当cookie参数ISecer反序列化后完全等于变量KEY时输出flag
代码不难但是陷阱到不少,主要有二:
- 看下格式化之后的代码,你发现了什么?
- KEY变量被赋值的位置
- 老规矩,看不懂私信我,包教包会
羽化登仙
填了坑,接下来就是舒服的获取flag环节了
Note:写到这里突然发现前面写的都凭空消失了,WTFK????????? 还好有Git,还原了文件内容,GIT牛脾
小插曲不要紧,flag才重要,上图
YES,收工
后记
GIT真香
说错了,是具备良好的基础很重要
其实上一句也不重要,最重要的是不要被作者忽悠
其实也不对,相信自己的判断吧