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

web刷题记录(1)

[GXYCTF 2019]Ping Ping Ping

进入页面,发现有一个传入参数的框,目的就是为了让我们通过参数传入内容来执行代码。这里先传入本地ip,方便后面的ping命令运行

 ls命令来查看,目录中的文件

传入后,发现目录下有flag.php,尝试读取这个文件

发现无法读取,根据回显信息可知,存在绕过,是空格被过滤

空格绕过的方法

过滤空格
$IFS$9
${IFS}
$IFS$1

 尝试绕过

 这里尝试了%09,%20,$IFS$1,都不可以读取,既然flag文件无法读取,尝试读取index.php,成功读取

查看源代码

发现源码中,过滤了f*,l*,a*,g*,看了wp以后,发现这里要用变量拼接绕过,即给两个不同的变量赋值,然后,最终组成flag

成功绕过,查看源代码,得到了flag

除了上面的变量拼接绕过还有base绕过的办法,即将命令用base64编码以后,再通过解码,执行命令,以下是代码

对cat flag.php 进行base64  Y2F0IGZsYWcucGhw
base64 -d   解码
sh (是shell命令语言解释器  通过这个执行base64 -d)所以payload127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhw|base64$IFS$9-d|sh| 为管道符 直接执行命令   |左边命令的输出就会作为|右边命令的输入

这种方法也可以获得flag,这里就不再展示

[SWPUCTF 2021 新生赛]error

这道sql题,我是用sql-map做出来的,所以这里展示用sql-map的做法,老样子,进入发现有参数的传入口,传参以后,用bp抓包,将抓包内容的文件复制到kali里面,使用sql-map的命令进行检查,因为不确定是哪一种注入形式,所以这里采用五级三风险,发现是时间盲注和报错注入,而且爆出了一个库

既然有了爆出的库,以及注入信息,就改为三级一风险,然后接着爆破

找到了可疑的表,接着往下爆破

找到了flag文件

接着爆字段

最后得到了flag

[LitCTF 2023]1zjs

这里题目信息中提示了js,那么进入后就选择从js文件中找信息

这里想看看这道是不是简单题,所以先在js文件里面筛选有关flag信息的内容

筛选完一遍以后,发现题目本身的文件里面不含有任何直接带flag相关字段的信息

那么尝试从查看器中找相关的线索

发现可疑信息,指向另外一个js文件,尝试访问去找线索

访问以后,发现页面中间有一大段注释,从注释中解读到了线索的信息

继续访问

发现这个文件里面就是一段jsfuck的代码,本来按照做法是去找相关的解密网站,但是我找了很多都是因为过长,而解不出来。通过查找资料可知,可以通过开发者工具的控制台来直接解读,修改一点权限以后,复制粘贴,运行以后得到了flag。

[LitCTF 2023]作业管理系统

 进来以后发现有登录页面,于是尝试弱口令爆破,账号admin,密码admin,或者123456,运气很好第二遍就试出来了,后面发现,在这个界面的源代码里面给了账号密码的信息,所以说,如果没有头绪就多看看源代码然后进行分析。

进入以后,发现有文件上传的点

尝试上传一句话木马

没有什么绕过的,直接一句话木马的php文件也可以上传,上传成功以后,找一下路径

从路径检测可知,木马上传成功,这里使用蚁剑连接

连接成功,进入文件目录去找与flag有关的文件

找了一圈,发现并没有,直接文件名称相关的文件,那这里选择使用虚拟终端来查找与flag相关的信息

成功找到了flag

[SWPUCTF 2021 新生赛]finalrce

进入题目后,发现题目虽然与rce有关但是存在正则表达式,过滤了很多参数,并且要以get传参的方式,将参数传入url这个变量中。这里我考虑了取反来进行绕过,但是发现没有回显。在思考和对wp的解读以后,我觉得这题主要是,遇到一种新的符号,"\"—转义符。我理解的作用就是在一些控制字符被过滤的时候,可以用转义符,让控制符失去原本的含义,变为字面量,但是作用不变,然后发现这里要用到tee命令(这里是大佬博客关于tee命令的用法),这里tee命令的作用是从标准输入读取,再写入标准输出和文件。

 所以,这里是构造的payload

?url=l\s / | tee 1.txt

这里payload的作用前半部分是对正则表达式的绕过,后半部分是使用tee命令,将ls命令读取到的内容,存储到1.txt这个新建的文件中,因为这个命令不会有特别明显的回显(这里这句话我当时就没发现),所以等代码执行完以后,,直接访问1.txt文件

得到了跟flag有关的文件信息

因为在上面给出的代码中,cat命令被限制了,所以通过查询以后,这里使用了另外一个关于查看文件的命令,即tac

但是,直接构造payload发现,还是被拦截了,也不知道是什么被过滤了,再次查看,发现是flag文件的连接的“al”被过滤了,所以,这里再次使用转义符,进行绕过

成功绕过后,tee命令成功执行,将flag文件的相关内容存储到2.txt,通过访问该文件,最后得到了flag的内容

 [UUCTF 2022 新生赛]websign

因为是签到题,所以估计难度不会太大,并且这里给的提示和源码有关,所以选择先看源代码的内容

但是一通操作以后发现F12,ctrl u等直接查看源码的操作被过滤,这里还有两种办法,一种是在URL框中使用开发者工具查看,另外一种是在URL栏中输入view-resource:,这两种方法都可以直接查看到这个网页的源代码

 

开源以后呢,发现那些快速查看源码的方法被禁用的原因是一个js文件的问题,这里其实还有第三种办法,就是直接禁用这个js脚本,然后就可以通过那些快捷的办法来查看源代码

[鹏城杯 2022]简单包含

进入以后,根据题目和代码提示可知,这里要用post传参的方式来将flag作为变量传入数据,并且注释中还给了flag相关文件的路径

 这里先尝试使用伪协议,直接读取flag.php这个文件,但是没有回显,说明还不满足题目的条件

所以这里选择换个思路,选择先读取index.php文件的内容,看看是不是还存在其他的条件来判断

成功读取,复制以后,进行解码查看文件内容

发现确实还存在一个条件判断,这里代码的大致意思是

两者同时满足时waf才生效,所以我们让脏数据的数量大于800

strlen(file_get_contents('php://input')) < 800:它检查通过 php://input 获取的请求主体的长度是否小于 800 字节。

reg_match('/flag/', $path):它使用正则表达式检查 $path 变量是否包含字符串 "flag"。这是为了防止包含敏感文件

所以这里使用python,先生成800字节的内容

然后再以post传参的方式去构造payload,最后成功导出了flag,解码后即获得了flag

 [HDCTF 2023]Welcome To HDCTF 2023

进入题目中以后,发现是一个游戏,根据以往做题经验可知,和flag相关的信息一般都在game.js文件中,然后特别奇怪的是,随便点了几下,flag就弹出来了。。。。。。。。。。。

(手动狗头)但是flag咱该找还是得找啊

进入源码后,发现检索根本检索不到与flag直接相关的信息,只能眼搓,搓了大概五分钟之后,终于找到了,可能和flag相关的信息,是一段jsfuck代码

老样子,丢到控制台里面,跑出来了flag

[LitCTF 2023]Http pro max plus

进入后,根据提示可知,要通过bp修改为本地的ip

抓包以后进行修改

。。。这里因为xff是比较常见的,但是被嘲讽了,通过查找资料可知,还可以用Client-ip来修改,

成功进入了下一个界面,这里要更改的是Referer

因为一直抓包放包太麻烦,所以这里换用repeater

得到了下一步提示,根据提示,修改UA头

让开代理,这里使用的是Via:

 获得了一个文件的路径

访问,有三个超链接,但是没什么用,这里查看源码,发现了相关信息

绕了这么多,居然还有

还好,终于给我拿到了flag

这就是今天的刷题记录。纯小白,如有错误欢迎指正。

相关文章:

  • PADS做CAM文件时,提示填充宽度对于精确的焊盘填充过大
  • 剪映网页版
  • 面向可复用性和可维护性的设计模式 课程学习总结
  • 基于java实现图片中任意封闭区域识别
  • NSSCTF-Web题目4
  • Bentham Science药学全文期刊库文献在家轻松下载
  • Java开发-面试题-0001-String、StringBuilder、StringBuffer的区别
  • Gir clone 设置代理与错误
  • [每日一练]查询从不订购的客户(标量子查询)
  • 数据结构——二叉树的实现
  • opencv进阶 ——(七)图像处理之寸照换背景
  • 基于python flask的旅游数据大屏实现,有爬虫有数据库
  • 算法的时间与空间复杂度
  • 【C++面试100问】第八十五问:有了const,C++11为什么还要引入constexpr
  • 【busybox记录】【shell指令】readlink
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Cookie 在前端中的实践
  • Date型的使用
  • LeetCode算法系列_0891_子序列宽度之和
  • rabbitmq延迟消息示例
  • ubuntu 下nginx安装 并支持https协议
  • zookeeper系列(七)实战分布式命名服务
  • 第2章 网络文档
  • 规范化安全开发 KOA 手脚架
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 使用common-codec进行md5加密
  • 数据科学 第 3 章 11 字符串处理
  • 学习JavaScript数据结构与算法 — 树
  • 延迟脚本的方式
  • 异常机制详解
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​Java基础复习笔记 第16章:网络编程
  • # Kafka_深入探秘者(2):kafka 生产者
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)计算机毕业设计ssm电影分享网站
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (七)c52学习之旅-中断
  • (三分钟)速览传统边缘检测算子
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)Neo4j下载安装以及初次使用
  • (转载)从 Java 代码到 Java 堆
  • ... 是什么 ?... 有什么用处?
  • .Net IOC框架入门之一 Unity
  • .NET Project Open Day(2011.11.13)
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET开源项目介绍及资源推荐:数据持久层
  • /bin/rm: 参数列表过长"的解决办法
  • /etc/shadow字段详解
  • /var/lib/dpkg/lock 锁定问题