CG_CTF web篇下

密码重置2

根据提示
TIPS:
1.管理员邮箱观察一下就可以找到
2.linux下一般使用vi编辑器,并且异常退出会留下备份文件
3.弱类型bypass
一、vim备份文件

 默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,某些情况下可以对其下载进行查看;

eg:index.php普遍意义上的首页,输入域名不一定会显示。   它的备份文件则为index.php~

二、vim临时文件

vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是submit,则它的临时文件
来自https://www.cnblogs.com/zwfc/p/5466885.html

所以找到临时文件

http://nctf.nuptzj.cn/web14/.submit.php.swp
........这一行是省略的代码........

/*
如果登录邮箱地址不是管理员则 die()
数据库结构

--
-- 表的结构 `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `token` int(255) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- 转存表中的数据 `user`
--

INSERT INTO `user` (`id`, `username`, `email`, `token`) VALUES
(1, '****不可见***', '***不可见***', 0);
*/


........这一行是省略的代码........

if(!empty($token)&&!empty($emailAddress)){
	if(strlen($token)!=10) die('fail');//长度=10
	if($token!='0') die('fail');//字符为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 "失败了呀";
	}
}
	

所以$token=0000000000
在submit.php页面

http://nctf.nuptzj.cn/web14/[email protected]&token=0000000000

得到flag

file_get_contents

打开F12
在这里插入图片描述
这里用php伪协议,得到flag
在这里插入图片描述

变量覆盖

打开F12
在这里插入图片描述
所以

http://chinalover.sinaapp.com/web24/?name=meizijiu233

得到flag

HateIT

挂了

Anonymous

挂了

发布了19 篇原创文章 · 获赞 0 · 访问量 256

猜你喜欢

转载自blog.csdn.net/weixin_45689999/article/details/104518836