这是一个非预期解,但是得到出题人的赞许,莫名开心,哈哈:

cancan need处存在任意文件读取

<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>login</title>
<link rel="stylesheet" type="text/css" href="css/button.css" />
<link rel="stylesheet" type="text/css" href="css/button.min.css" />
<link rel="stylesheet" type="text/css" href="css/input.css" /><style>body{text-align:center;margin-left:auto;margin-right:auto;margin-top:300px;}</style>
</head>
<body><?php
error_reporting(0);
session_start();
include 'class.php';if(isset($_POST['username']) && $_POST['username']!=''){#修复了登录还需要passwd的漏洞$user = new User($_POST['username']);
}if($_SESSION['isLogin']){die("<script>alert('Login success!');location.href='file.php'</script>");
}else{die('
<form action="index.php" method="post"><div class="ui input"><input type="text" name="username" placeholder="Give me uname" maxlength="6"></div>
<form>');
}
<?php
class User
{public $username;public function __construct($username){$this->username = $username;$_SESSION['isLogin'] = True;$_SESSION['username'] = $username;}public function __wakeup(){$cklen = strlen($_SESSION["username"]);if ($cklen != 0 and $cklen <= 6) {$this->username = $_SESSION["username"];}}public function __destruct(){if ($this->username == '') {session_destroy();}}
}class File
{#更新黑名单为白名单,更加的安全public $white = array("jpg","png");public function show($filename){echo '<div class="ui action input"><input type="text" id="filename" placeholder="Search..."><button class="ui button" onclick="window.location.href=\'file.php?m=show&filename=\'+document.getElementById(\'filename\').value">Search</button></div><p>';if(empty($filename)){die();}return '<img src="data:image/png;base64,'.base64_encode(file_get_contents($filename)).'" />';}public function upload($type){$filename = "dasctf".md5(time().$_FILES["file"]["name"]).".$type";move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $filename);return "Upload success! Path: upload/" . $filename;}public function rmfile(){system('rm -rf /var/www/html/upload/*');}public function check($type){if (!in_array($type,$this->white)){return false;}return true;}}#更新了一个恶意又有趣的Test类
class Test
{public $value;public function __destruct(){chdir('./upload');$this->backdoor();}public function __wakeup(){$this->value = "Don't make dream.Wake up plz!";}public function __toString(){$file = substr($_GET['file'],0,3);file_put_contents($file, "Hack by $file !");return 'Unreachable! :)';}public function backdoor(){if(preg_match('/[A-Za-z0-9?$@]+/', $this->value)){$this->value = 'nono~';}system($this->value);}}进程已结束,退出代码0
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>login</title>
<link rel="stylesheet" type="text/css" href="css/button.css" />
<link rel="stylesheet" type="text/css" href="css/button.min.css" />
<link rel="stylesheet" type="text/css" href="css/input.css" /><style>.show{text-align:center;margin-left:auto;margin-right:auto;margin-top:240px;}.run{text-align:right;margin-left:auto;margin-right:auto;}</style>
</head>
<body><div class="run"><div class="ui animated button" tabindex="0" onclick="window.location.href='file.php?m=logout'"><div class="hidden content"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">润!</font></font></div><div class="visible content"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">												

DASCTF X GFCTF 2022十月挑战赛-hade_waibo相关推荐

  1. DASCTF X GFCTF 2022十月挑战赛 学习记录

    这个比赛一向是大佬们的施展空间,哈哈哈我们就是混混.. 这里有点难受web一个没搞出来,misc搞出来两个... 滴滴图 给了一个压缩包解出来有两个文件 zip有密码使用,ARCHPR放到后台先破解破 ...

  2. DASCTF X GFCTF 2022十月 Misc

    文章目录 Misc 滴滴图 poi?qoi! ez_xxd easy_dots ansic dockermisc Misc 滴滴图 jpg(png)后面有压缩包,压缩包的文件尾有段密码 是解压此压缩包 ...

  3. DASCTF X CBCTF 2022九月挑战赛 WriteUp

    BBBB WRITEUP MISC easy_keyboard Sign_in ezflow Mask Reverse landing web dino3d Text Reverser PWN ez_ ...

  4. DASCTF X CBCTF 2022九月挑战赛 appetizer

    程序分析 开启了沙盒ban了execve fun函数可以覆盖到rbp的位置 check函数会检查该位置是否有下面的字符串,小端序记得反过来写 白给了程序的一个地址(end),通过减去偏移拿到程序的基地 ...

  5. 用最好的“积木”,在元宇宙中掀起一场头脑风暴吧!丨RTE 2022 编程挑战赛圆满收官...

    9月 17 日,由声网.环信与 RTE 开发者社区联合主办的「RTE 2022 编程挑战赛」圆满落幕.从 300+ 支参赛队伍中冲出重围的 27 支决赛队伍,在元宇宙中用精彩的答辩掀起了一场头脑风暴, ...

  6. DASCTF2022十月挑战赛部分WP

    web1 看题目源码,有4个类,开始的时候看到了fine类里面的call_user_func,最终应该是打进这个地方,另外看到了 secret_code 类里面的hint()函数,所以我的想法路线是先 ...

  7. 2022 AIOps挑战赛方案总结

    文章目录 挑战赛赛题:微服务架构电商系统下的故障识别和分类 一.赛季关键字 二.赛题背景 1.开源的微服务系统 2.丰富的故障类型 3.多模态监控数据 三.方法汇总 1.特征工程 (1)时序预处理 ( ...

  8. 衡师11月月赛web题目wp

    目录 1.丢三落四的学姐 2.wep?Pwn!!! 这题web部分是buuctf中的DASCTF X GFCTF 2022十月挑战赛!的原题 1.丢三落四的学姐 访问题目位置,很明显的phpstudy ...

  9. DASCTF x CBCTF 2022_Crypto复现

    DASCTF x CBCTF 2022_Crypto复现 easySignin P r o b l e m Problem Problem A n a l y s i s Analysis Analy ...

最新文章

  1. 谷歌正在测试一个人工智能系统,帮助视障人士参加跑步比赛
  2. 不“刷脸”回不了家?郑州业主拒绝录入人脸信息回家如做贼,物业:少数服从多数...
  3. Java向MySQL数据库插入时间类型Date数据时需要注意的问题
  4. 微服务是否使SOA变得无关紧要?
  5. linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别
  6. 最优化学习笔记(二)一维搜索
  7. gerber文件怎么导贴片坐标_SMT贴片机在线编程调试
  8. Radware;医疗行业数字转型5大关键注意事项
  9. 【HDU 6020】 MG loves apple (乱搞?)
  10. 疑难杂症 | Win10解压文件后乱码
  11. 如何彻底卸载3dmax2020_完全卸载3DMAX的方法
  12. win10安装双系统
  13. 使用IIS 共享文件
  14. ffmpeg的使用笔记
  15. 教你用三种方式打造一款简单的网络播放器
  16. 理解风险偏好risk appetite vs. 风险容忍度risk tolerance
  17. 先尚传真服务器指示灯显示,【仪表盘指示灯】仪表盘上常见的五种故障指示灯_仪表盘指示灯图解_佰佰安全网...
  18. CSS常用颜色配色的参数设置
  19. lisp画弯箭头_AutoCAD中怎么画箭头 CAD画箭头的方法
  20. EasyRecovery年中狂欢还没结束,震惊

热门文章

  1. es(一)-走进es
  2. 星巴克中国已开4家手语门店,分别位于广州、北京、杭州与上海
  3. 计算机毕业设计ssm基于web的暗香小店系统的设计与实现80041系统+程序+源码+lw+远程部署
  4. 2018 qs计算机排名,2018QS世界大学专业排名发布
  5. java把以逗号分割的字符串进行截取
  6. ROS机器人系统学习笔记(一)--------ROS安装与配置
  7. Linux miny选择字体,linux下sed命令对文件执行文本替换
  8. 华为交换机ssh思科交换机_关于SSH方式登录华为交换机问题
  9. RPA应该是每个财会人员必备职业技能
  10. protopyte.js ajax