实验吧-WEB-忘记密码了

忘记密码了

实验吧-WEB-忘记密码了输个123看看,结果返回如下,也不知道有什么用,确定以后又返回step1.php

实验吧-WEB-忘记密码了老规矩,看一下源码,发现里面有这么一段

	<meta name="renderer" content="webkit" />
	<meta name="admin" content="[email protected]" />
	<meta name="editor" content="Vim" />

发现是通过vim编写的,一般的vim编写可能会产生遗留问题,就是一个备份文件.swp,但是直接用似乎不行,然后我们通过抓刚刚那个重置链接的包

实验吧-WEB-忘记密码了
发送数据发现step2.php,也就是上面的回复包中要提交给另外一个submit.php文件。于是我们去访问一下这个页面,显示 you are not an admin
实验吧-WEB-忘记密码了
看来只有管理员才能访问刚刚那个页面,联想到刚开始我们已经有了管理员的邮箱,且该网页是用vim编辑的,我们可以查看一下备份文件submit.php.swp,但自己访问貌似不行。
试一试.submit.php.swp,果然发现了源代码。注意submit前面加点

if(!empty($token)&&!empty($emailAddress)){
	if(strlen($token)!=10) die('fail');  *//token长度为10*
	if($token!='0') die('fail');  *//token==0*
	$sql = "SELECT count(*) as num from `user` where token='$token' AND email='$emailAddress'";
	$r = mysql_query($sql) or die('db error');  //必须要是管理员邮箱
	$r = mysql_fetch_assoc($r);
	$r = $r['num'];
	if($r>0){
		echo $flag;
	}else{
		echo "澶辫触浜嗗憖";
	}
}

管理员邮箱我们之前就已经拿到了[email protected]

token的要求为长度为10并且值为0,0e满足这个条件。
现在我们要构造token=0e11111111

然后直接传入参数即可拿到flag
http://ctf5.shiyanbar.com/10/upload/[email protected]&token=0e11111111

实验吧-WEB-忘记密码了