ctfshow-WEB-web14( 利用数据库读写功能读取网站敏感文件)

2023-11-15

ctf.show WEB模块第14关是一个SQL注入漏洞, 绕过switch循环后可以拿到一个登录界面, 登录界面存在SQL注入, 脱库以后会提示flag在另一个文件中, 利用数据库的文件读写功能读取文件内容即可拿到flag

 

开局是一个switch循环, 需要传递参数 c, 参数对应的执行结果有四种: '$url', '@A@', $url, "$url" ; 前两个是字符串, 没啥用, 作者的目的应该是想让我们输出后两个 $url 的其中一个, 但输出之前还有个sleep(), 选的不合适就会睡眠很长时间, 这里我们传递一个 3即可

首先科普一个PHP的特性: 单引号包裹的内容只能当做纯字符串, 而双引号包裹的内容, 可以识别变量, 所以源码中的 "$url" 可以当做 $url 变量被正常执行

switch循环有一个特点, 如果 case条件对应的代码体中没有 break或者其他循环控制的关键字, 则会继续执行下一个 case条件的代码, 这里我们传递 3, echo '@A@' 以后, 会继续执行 case 6000000 对应的 echo "$url"

?c=3

 返回了一个文件, 很明显线索就在这里, 接下来我们访问一下这个文件

 

是一个登录界面, 盲猜存在SQL注入漏洞, 先给个true, 使SQL恒成立, 页面正常显示

再给个false, 使SQL恒不成立, 页面空显示 

 由以上结果可以确定存在SQL注入漏洞, 注入点为数值型注入, 页面有回显, 推荐使用联合注入

获取当前使用的数据库

 获取表

-1/**/union/**/select/**/group_concat(table_name)from/**/information_schema.`tables`/**/where/**/table_schema=database()

 获取字段

-1/**/union/**/select/**/group_concat(column_name)from/**/information_schema.`columns`/**/where/**/table_name='content'

获取数据

-1/**/union/**/select/**/group_concat(username,password)from/**/content

 ??? 一个秘密??? 不讲武德, 提示秘密里面有一个秘密( secret), 结合开头 switch循环页面中引入了一个 secret.php, 线索应该就在 secret.php 里面

 

先访问一下 secret.php 文件, 可以正常访问, 没有报404, 说明这个文件确实存在, 而且就在根目录下, apache的默认网站根路径是 /var/www/html, 我们试一下读这个文件的内容

 利用数据库的文件读写功能读取文件内容

-1/**/union/**/select/**/load_file('/var/www/html/secret.php')

 页面并没有反应, 用代理工具( BrupSuite)抓包试试

 

可以看到文件的内容, 里面并没有flag, 而是提供了一个新的线索, 接下来我们根据提示读取 /real_flag_is_here

 

 成功获取flag

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ctfshow-WEB-web14( 利用数据库读写功能读取网站敏感文件) 的相关文章

  • CSS进阶 —— 10 分钟理解 BFC 原理

    未完待续
  • 幻想乡的日常【树状数组+离线操作】

    题目链接 给出N个点的树 编号为1 N 每次的查询为 L R 想知道编号在 L R 内的所有的结点的会被分成多少个连通块 给出一条性质 连通块数量 点数 边数 点数很方便的可以计算 就是 R L 1 那么 如何计算边数呢 我们知道 每条边有
  • 这届世界杯是不是让你出乎意料?写个足球小游戏来模拟一下!

    前言 今年世界杯有人欢喜有人愁 我想愁的人应该居多 不得不说 小日本是真菜啊 特么的 今天还是搞点咱们好玩点的 世界杯嘛 大家看看就行 大家不是都说 看国足比看相声还搞笑吗 好了 不笑了 今天给大家带来一款非常简单的足球小游戏 希望大家喜欢
  • 什么是分布式软件系统

    什么是分布式软件系统 分布式软件系统是什么意思 分布式软件系统 Distributed Software Systems 是支持分布式处理的软件系统 是在由通信网络互联的多处理机体系结构上执行任务的系统 它包括分布式操作系统 分布式程序设计
  • 精灵标注助手的安装及使用

    位置标注 分割标注 官网下载安装包 http www jinglingbiaozhu com 安装超简单 位置标注 新建 gt 位置标注 gt 选择图片文件夹 定义分类值 用英文逗号隔开 然后 创建 右下角的 可以对图片进行放大 缩小 选择
  • jenkins配置publish over ssh遇到的问题

    一 背景 目标 本篇文章主要是说明自己在配置jenkins的publish over ssh插件所遇到的问题 本次主要是windows下的jenkins通过ssh的方式访问我本地虚拟机的ubuntu系统 准备 1 在jenkins上安装pu
  • [python] Python类型提示指北

    Python3 5 版本引入了类型提示 Type Hints 它允许开发者在代码中显式地声明变量 函数 方法等的类型信息 这种类型声明不会影响 Python 解释器的运行 但可以让 IDE 和静态分析工具更好地理解代码 同时提高代码的可读性

随机推荐

  • MySQL——SQL注入问题

    文章目录 1 SQL注入问题 2 PreparedStatement对象 1 SQL注入问题 SQL存在漏洞 会被攻击导致数据泄露 2 PreparedStatement对象 PreparedStatement 可以防止SQL注入 效率更好
  • vue使用文件流和url下载文件

    改为使用后台返回url下载文件 方法1 这个会导致在点击下载按钮的时候 页面会跳转到奇怪的url window location href row downloadUrl 方法2 点击下载按钮 不会在新窗口打开 const download
  • 刷脸支付算法和硬件不断升级消费更有保障

    刷脸支付设备依靠3D传感摄像头进行人脸识别 其内置的点阵投影仪可以投射出3万多个肉眼不可见的红外点到用户脸部 多维度 多角度在颜色 纹理 深度等数据进行高层次对比 安全性和精准性更高 识别速度更快 尽管现在刷脸支付的安全性已经达到极高的金融
  • 【数据结构与算法】栈的实现(附源码)

    目录 一 栈的概念和结构 二 接口实现 A 初始化 Stackinit 销毁 Stackdestroy 1 Stackinit 2 Stackdestroy B 插入 Stackpush 删除 Stackpop 1 Stackpush 2
  • 接口未正确配置:wx.getLocation(暂无权限)

    原因 腾讯地理位置接口新增与相关流程 地理位置接口新增说明 由于精确地理位置接口只允许部分类目的小程序申请使用 为了满足开发者在更多场景使用地理位置接口 自 2022 年 7 月 14 日起 新增获取模糊地理位置接口 wx getFuzzy
  • 计算机网络第六章——应用层(下)

    等闲变却故人心 却道故人心易变 文章目录 用户代理就是用户和电子邮件系统之间的一个接口 通常都是运行在电脑中的一个程序 用户代理又可以称为电子邮件客户端软件 用户代理可以为用户提供一个比较友好的接口 邮件服务器作为一个服务器就需要长时间的工
  • 责任链模式(Chain of Responsibility) Java实现

    责任链模式 责任链模式 Chain of Responsibility 定义 责任链模式是一种对象的行为模式 在责任链模式里 很多对象由每一个对象对其下家的引用而连接起来形成一条链 请求在这个链上传递 直到链上的某一个对象决定处理此请求 发
  • 以太网(Ethernet)相关基础知识

    最近正好在学习以太网 感觉非常有用 进行一个总结 欢迎指正 如今 以太网已在现实中大量使用 低廉的价格和较快的速度都是它从许多网络中存活下来的因素 学校 公司中大多用得都是以太网 目录 以太网电缆 Ethernet Cabling 曼彻斯特
  • 移动端点击(click)事件延迟问题的解决方法

    移动端 click 事件会有 300ms 的延时 原因是移动端屏幕双击会缩放 double tap to zoom 页面 解决方案 1 禁用缩放 浏览器禁用默认的双击缩放行为并且去掉300ms 的点击延迟 2 利用touch事件自己封装这个
  • (mac)配置vue

    安装参考 https www jianshu com p cc722eba1f46 1 安装brew 一个安装 卸载软件的程序 https blog csdn net poppy rain article details 88406390
  • Java面试题第一季学习笔记

    Java面试题第一季 1 自增变量 2 单例设计 2 1 什么是Singleton 2 2 代码示例 3 类初始化 3 1 代码 3 2 考点 3 3 Override 重写 和Overload 重载 区别 4 方法的传递机制 4 1 代码
  • java 反射中的method.invoke()方法详解

    public class TestReflect public static void main String args String names tom tim allen alice Class
  • java关于ArrayList,Vector,LinkedList,Set及其面试题+LeetCode136两种方式实现

    ArrayList ArrayList的遍历补充 将list转换为数组 使用toArray 方法将列表转换为数组 再对数组进行遍历 Test void test01 List
  • vue3实现鼠标左键拖拽画矩形框框选功能

    vue3 elementuiPlus 实现鼠标左键拖拽画矩形框 框选列表功能 仿照桌面框选功能 效果如图 vue3鼠标框选 代码
  • Hibernate的核心配置

    Hibernate的设计思路 Hibernate是一种全自动化管理持久化对象的ORM框架 既提供了完全面向对象的封装完整的对象持久化接口 屏蔽db层的差异化 提升代码可移植性 也提供了操作HQL和SQL的半自动化DB访问接口 提供复杂查询的
  • JSVC的配置与使用详解

    JSVC是apache出的所谓common daemon的一个工具套件 他利用一个daemon程序 从而使tomcat这样的程序能在开机的时候自动启动 而且能使tomcat被 chkconfig这样的工具所管理 在之前的一篇文章中对jsvc
  • 算法岗面试问题总结(二)

    文章目录 1 SVM的loss是啥 2 kmeans聚类如何选择初始点 3 RF和GBDT谁更容易过拟合 偏差和方差 4 xgb的分类树也是用残差吗 不是的话是什么 5 讲讲数据倾斜怎么处理 6 请你说说SVM的优缺点 7 LR和SVM的联
  • C++中的typeInfo用法总结

    最近在做测试 在大型程序中 模板类型加上继承关系搞得我混乱 还好有tpyeinfo帮助捋顺关系 typeInfo与typeid简单总结说明 和sizeof这类的操作符一样 typeid是C 的关键字之一 typeid操作符的返回结果是名为t
  • jenkins学习笔记第十六篇 jenkins权限控制

    创建用户 对用户进行权限控制 在实际项目中 根据不同的用户 大致可分为 测试用户 开发用户 运维用户等 这时就需要给不同的用户赋予不能的权限 首选需要安装插件 Role based Authorization Strategy 这个插件主要
  • ctfshow-WEB-web14( 利用数据库读写功能读取网站敏感文件)

    ctf show WEB模块第14关是一个SQL注入漏洞 绕过switch循环后可以拿到一个登录界面 登录界面存在SQL注入 脱库以后会提示flag在另一个文件中 利用数据库的文件读写功能读取文件内容即可拿到flag 开局是一个switch