[CTF]抓住那只猫(XCTF 4th-WHCTF-2017)

2023-11-06

原作者:darkless

题目描述:抓住那只猫

思路:
打开页面,有个输入框输入域名,输入baidu.com进行测试
1561366-20190923143357853-1249863370.png

发现无任何回显,输入127.0.0.1进行测试。
1561366-20190923143404773-1527929605.png

发现已经执行成功,执行的是一个ping命令,一开始想的应该是命令拼接执行,但是输入任何有关拼接的字符串都会提示invalid url

1561366-20190923143416887-1218605416.png

说明系统对这些字符串都进行了过滤,fuzz测试后发现只有@没有被过滤。

1561366-20190923143425186-66005442.png
且当输入@时,会将@编码为%40

1561366-20190923143434889-765240379.png
尝试在url处输入宽字符,比如%bf

1561366-20190923143441210-1132889141.png
出现报错信息,是一段html代码,将这些代码复制出来打开。

1561366-20190923143449562-1926853181.png

看到了熟悉的django报错页面,看来是将输入的参数传到了后端的django服务中进行解析,而django设置了编码为gbk导致错误编码了宽字符(超过了ascii码范围)。

到这一步后,联系到前面的@字符没有被过滤,然后看了大佬们的解题思路(这里太坑了,原题目上其实是由提示的)

1561366-20190923143516529-1388882935.png
意思是可以用@读取文件内容。结合django的报错得知了项目的绝对路径为/opt/api

1561366-20190923143529384-365052520.png

这里还需要懂一些django开发的基本知识,我感觉这道题涉及的面有点广了,django项目下一般有个settings.py文件是设置网站数据库路径(django默认使用的的是sqlites数据库),如果使用的是其它数据库的话settings.py则设置用户名和密码。除此外settings.py还会对项目整体的设置进行定义。

读取settings.py文件,这里需要注意django项目生成时settings.py会存放在以项目目录下再以项目名称命名的文件夹下面。

1561366-20190923143546350-1757173956.png

同上将报错信息已html文件打开,可看到一些敏感信息:

1561366-20190923143555151-1676823256.png

同样在使用@读取数据库信息

1561366-20190923143605449-1141893677.png

在报错信息中搜索CTF得到flag。

1561366-20190923143613262-1918254119.png

以上就是这道题的解法,我只能说大佬们的思路真野!

转载于:https://www.cnblogs.com/-mo-/p/11572267.html

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

[CTF]抓住那只猫(XCTF 4th-WHCTF-2017) 的相关文章

  • 适用于 Python 3.x 的 Hive 客户端

    是否可以使用 Python 3 x 连接到 hadoop 并运行 hive 查询 我正在使用Python 3 4 1 我发现可以按照这里写的方式完成 https cwiki apache org confluence display Hiv
  • min() arg 是一个空序列

    我试图找到矩阵行中的最小元素 但有两个条件 1 它必须 gt 0 2 并且这个点一定不能被访问 is visited k is False 我下一步正在尝试做 min x for x in matr sum i if x gt 0 if i
  • 如何使用python登录页面,该页面需要服务器在第一次请求时响应会话ID?

    我正在编写一个脚本来登录某个网页 我使用 request 和 request session 模块来实现此目的 在使用登录参数的第一个请求时 服务器响应一个会话 ID 如何设置该会话 ID 以进一步登录到同一页面 url some url
  • Pytorch - 推断线性层 in_features

    我正在构建一个玩具模型来获取一些图像并进行分类 我的模型看起来像 conv2d gt pool gt conv2d gt linear gt linear 我的问题是 当我们创建模型时 我们必须计算第一个线性层的大小in features基
  • 在 Python 中同时插入行

    我正在尝试对我的代码进行矢量化 但遇到了障碍 我有 nxd x 值数组 x1 xn 其中每一行 x1 有很多点 x11 x1d nxd y 值数组 y1 y2 y3 其中每一行 y1 有很多点 y11 y1d x 值的 nx1 数组 x 1
  • 如何将人物传奇带到前台?

    我有一系列子图 其中每个子图都有一个图例 我想在每个子图之外与相邻子图重叠 问题在于图例位于其自己的图的 顶部 但位于相邻图的下方 Legend 不将 zorder 作为参数 所以我不知道如何解决这个问题 这是我使用过的代码 import
  • 如何在python 2.7.8中将非英文字母的字典写入文件?

    这是一个简单的例子 test location 北京 country 中国 the values are Chinese 在文件 test log 中 location 北京 country 中国 在python 2 7 8中 当我需要输出
  • Python实时读取串口数据

    我正在使用 Python 中的脚本通过串行端口以 2Mbps 的速度从 PIC 微控制器收集数据 PIC 在 2Mbps 下完美定时工作 FTDI USB 串行端口在 2Mbps 下工作也很好 均通过示波器验证 我每秒发送消息 大小约为 1
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • self.__dict__.update(**kwargs) 的风格是好是坏?

    在 Python 中 假设我有一些类 Circle 它继承自 Shape Shape 需要 x 和 y 坐标 此外 Circle 需要半径 我希望能够通过执行类似的操作来初始化 Circle c Circle x 1 y 5 r 3 Cir
  • 自适应支付 API 错误 580001

    我正在 python 中向 paypal 自适应支付 API 发出 PAY 请求 并收到通用错误 id 580001 没有其他信息 headers API credentials for the API caller business ac
  • 进行异步调用时,“yield”在龙卷风中如何工作?

    最近我在学习龙卷风简介 我遇到了以下代码 class IndexHandler tornado web RequestHandler tornado web asynchronous tornado gen engine def get s
  • 使用 matplotlib 设置或固定二元分布值

    I ve animated a bivariate gaussian distribution using matplotlib 我已经计算过这个distribution通过调整COV matrix来考虑特定的变量 我可以提供有关此过程的更
  • pandas-更改重采样时间序列的开始和结束日期

    我有一个时间序列 我将其重新采样到这个数据框中df 我的数据是从6月6日到6月28日 它希望将数据从6月1日延长到6月30日 计数列仅在较长时间内具有 0 值 而我的实际值是从 6 日到 28 日 Out 123 count Timesta
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 返回吃异常

    我至少发现了以下行为weird def errors try ErrorErrorError finally return 10 print errors prints 10 It should raise NameError name E
  • Python 对列表中的值求和(如果它存在于另一个列表中)

    我有一个列表和一组 a list 1 2 2 1 1 1 b list 1 2 我正在寻找对应 b list 中的项目并将它们从 a list 中的值相加 以便输出为 1 3 2 1 我尝试过的 sum 0 for i in a list
  • python 相当于 sed

    有没有一种方法 无需双循环即可完成以下 sed 命令的操作 Input Time Banana spinach turkey sed i Banana s Toothpaste file Output Time BananaToothpas
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但
  • 使用 TkInter 绑定设置不可交互(点击)覆盖

    我已经浏览了其他几篇关于类似问题的帖子 所有这些似乎都指向this https stackoverflow com questions 29458775 tkinter see through window not affected by

随机推荐

  • 线程方法wait/wait(timeout)源码分析

    1 wait wait timeout wait有三个重载的方法 但是最终都是调用native的wait timeout 方法 那我们来看看这个方法在jvm中具体做了些什么 图1 1 图1 2 java中的object wait方法对应c
  • 基础算法题——最短路计数(bfs遍历)

    最短路计数 题目描述 给出一个N个顶点M条边的无向无权图 顶点编号为 1 N 问从顶点1开始 到其他每个点的最短路有几条 输入格式 第一行包含2个正整数 N M 为图的顶点数与边数 接下来M行 每行2个正整数 x y 表示有一条顶点x连向顶
  • Graft货币(GRFT)结点搭建

    Graft官网 https www graft network github地址 https github com graft project GraftNetwork releases 节点搭建 从https github com gra
  • MPC车辆轨迹跟踪----理论推导

    MPC控制简介 众所周知 控制算法中 PID的应用占据了90 而另外10 就是这次的主角MPC控制算法 MPC控制算法全称模型预测控制 它相对比PID有着多输入 多输出以及更加平稳的特点 并且最重要的是 MPC可以针对非线性的系统进行控制
  • PCB正片和负片有什么区别

    PCB正片和负片有什么区别 概念 正片和负片是底片的两种不同类型 正片 简单地说就是 在底片上看到什么就有什么 负片 正好相反 看到的就是没有的 看不到的就是有的 见下图 在 Allegro中使用正负片的特点 正片 优点是所见所的 有比较完
  • IDEA 2018 Mybatis Plugin插件安装破解及使用

    一 进入官网http plugins jetbrains com 二 搜索Free MyBatis Plugin 三 点击get 选择Free Mybatis plugin 点击下载 四 下载完成 五 打开Idea 点击File 点击Set
  • ARM汇编基础详解(PS学习汇编的原因)

    目录 前言 1 GNU 汇编语法 2 Cortex A7 常用汇编指令 2 1 处理器内部数据传输指令 内部寄存器数据非内存数据 2 2 存储器访问指令 RAM 2 3 压栈和出栈指令 了解 2 4 跳转指令 2 5 算术运算指令 2 6
  • brew 安装 for Mac

    安装命令 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install master install brew 官网 http brew sh 安装过程遇
  • 电子学会2022年09月青少年软件编程C语言等级考试试卷二级真题及(参考答案)

    编程题 共5题 共100分 1 统计误差范围内的数 考试题目 统计一个整数序列中与指定数字m误差范围小于等于X的数的个数 时间限制 5000 内存限制 65536 输入 输入包含三行 第一行为N 表示整数序列的长度 N lt 100 第二行
  • 代码静态扫描工具sonar介绍

    一 SonarQube整体介绍 SonarQube为静态代码检查工具 采用B S架构 帮助检查代码缺陷 改善代码质量 提高开发速度 通过插件形式 可以支持Java C C JavaScripe等等二十几种编程语言的代码质量管理与检测 通过客
  • 右值引用详解

    何谓右值 右值引用 右值引用与其他对比 右值引用与移动语义 右值引用与std move 移动语义与std move 移动语义注意事项 移动语义与swap 完美转发 何谓右值 一个最简单判断左值 右值的方式是 等号左边的值即左值 等号右边的值
  • 深度学习之浅见

    通常来说 大家认为深度学习的观点是Geoffrey Hinton在2006年提出的 这一算法提出之后 得到了迅速的发展 关于深度学习 zouxy09的专栏中有详细的介绍 Free Mind 的博文也很值得一读 本博文是我对深度学习的一点看法
  • VS Code Remote Development

    在Windows下编辑Linux代码 并且有Linux下的系统接口 第三方dep库的语法解析 代码提示 自动补全 跳转 用起来真香 困扰了Linux后台开发人员多年的难题终极解决方案 要求VS Code版本在1 35 1以上 1 安装远程开
  • 基础学习JavaScript 之 Array

    笔记文 Array JavaScript内置对象之一 由索引值来排序的数据集合 下面就列出了array上的方法 会改变自身的方法 copyWithin 在数组内部 将一段元素序列拷贝到另一段元素序列上 覆盖原有的值 fill 将数组中指定区
  • dc-9 靶机渗透学习

    信息收集 用nmap扫描当前网段 nmap sP 192 168 202 0 24 对靶机进行端口扫描 nmap A p v 192 168 202 148 访问靶机的80端口 进行框架识别 无框架的页面 尝试web服务漏洞 用dirsea
  • java数据结构-栈

    栈 1 栈的定义 栈 Stack 是只允许在一端进行插入或删除的线性表 首先栈是一种线性表 但限定这种线性表只能在某一端进行插入和删除操作 栈顶 Top 线性表允许进行插入删除的那一端 栈底 Bottom 固定的 不允许进行插入和删除的另一
  • VMware+CentOS7搭建私有云桌面服务

    VMware CentOS7搭建私有云桌面服务 1 安装VMware虚拟机工作台 官网下载安装包 版本 14 1 3 Pro 地址 https my vmware com en web vmware info slug desktop en
  • 详解从0开始的嵌入式学习路线,学什么、怎么学?

    嵌入式是个大筐 什么都可以往里面装 电子 机械 计算机 自动化 测控 通信 物联网 很多很多专业都和嵌入式沾边 硬件 驱动 操作系统 网络 应用 算法 很多同学越学越迷糊 越学越感觉什么也不会 首先要记住一句话 嵌入式学习奥义 先观其广 再
  • osgEarth的Rex引擎原理分析(五十八)osgEarth::ShaderFactory osgEarth::ShaderLoader关系

    目标 五十四 中的问题130 osgEarth ShaderFactory osgEarth ShaderLoader关系 ShaderFactory主要用来产生各个着色器阶段的main函数 一般用户不需要直接使用它 除非有特殊的定制需要
  • [CTF]抓住那只猫(XCTF 4th-WHCTF-2017)

    原作者 darkless 题目描述 抓住那只猫 思路 打开页面 有个输入框输入域名 输入baidu com进行测试 发现无任何回显 输入127 0 0 1进行测试 发现已经执行成功 执行的是一个ping命令 一开始想的应该是命令拼接执行 但