当前位置: 首页 > article >正文

攻防世界 ics-07

点击之后发现有个项目管理能进,点进去,点击看到源码,如下三段

 

<?php session_start(); if (!isset($_GET[page])) { show_source(__FILE__); die(); } if (isset($_GET[page]) && $_GET[page] != 'index.php') { include('flag.php'); }else { header('Location: ?page=flag.php'); } ?>

 

<?php if ($_SESSION['admin']) { $con = $_POST['con']; $file = $_POST['file']; $filename = "backup/".$file; if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){ die("Bad file extension"); }else{ chdir('uploaded'); $f = fopen($filename, 'w'); fwrite($f, $con); fclose($f); } } ?>

 

<?php if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9') { include 'config.php'; $id = mysql_real_escape_string($_GET[id]); $sql="select * from cetc007.user where id='$id'"; $result = mysql_query($sql); $result = mysql_fetch_object($result); } else { $result = False; die(); } if(!$result)die("<br >something wae wrong ! <br>"); if($result){ echo "id: ".$result->id."</br>"; echo "name:".$result->user."</br>"; $_SESSION['admin'] = True; } ?>

大概思路是在id满足第三段代码的情况下,使$_SESSION['admin'] = True。然后在以POST方式提供con和file,当file满足条件时,会将con的内容写入uploaded /backup /filename中。在在第一段中包含此文件,可以得到flag.php

先在view-source.php?page=flag.php页面,如下图,输入1' or '9'='9,满足了第三段代码的条件

构造以下请求

在/uploaded/backup/aaa.txt确实存在,证明攻击奏效,下面主要是如何绕过第二段代码。

最终代码如下

然后菜刀链接,找到flag页面,完毕


http://www.kler.cn/a/473448.html

相关文章:

  • SpringBoot日常:集成Kafka
  • NRC优先级中比较特殊的—NRC0x13和NRC0x31
  • 【Web】0基础学Web—事件对象、事件委托(事件代理)——星级评论案例
  • SpringBoot | @Autowired 和 @Resource 的区别及原理分析
  • 简单的jmeter数据请求学习
  • 微信小程序获取图片使用session(上篇)
  • 51单片机——定时器中断(重点)
  • 全天候高效响应,中关村科金智能客服机器人优化客户体验
  • Hive部署内嵌模式、本地模式、远程模式
  • 现场展示deepseek VS openAI o1模型大对比
  • BI结合数据分析系统,为企业发展提供坚实的保障
  • WD5105同步降压转换器:9.2V-95V宽电压输入,4.5A大电流输出,95%高效率,多重保护功能
  • Java 注解详解:RetentionPolicy 与 ElementType
  • [Git] git pull --rebase / git rebase origin/master
  • 用VS C#构建Windows服务【纯操作版,附带项目地址】
  • python_excel列表单元格字符合并、填充、复制操作
  • 基于64QAM的载波同步和定时同步性能仿真,包括Costas环和gardner环
  • docker一键安装脚本(docker安装)
  • 基于 Python 自动化接口测试(踩坑与实践)
  • 【ROS2】从零开始使用URDF构建机器人
  • java之Collection
  • USB 驱动开发 --- Gadget 设备连接 Windows 免驱
  • 基于物联网疫苗冷链物流监测系统设计
  • go语言学习 笔记 1(变量,语法,数据类型)
  • 【.NET】Kafka消息队列介绍,使用Confluent.Kafka集成Kafka消息队列
  • 如何使用脚手架工具开始,快速搭建一个 Express 项目的基础架构