CTF-web-攻防世界-3

news/2024/9/23 19:27:06/

1、inget

(1)、进入网站,提示传入id值

(2)、用一些闭合方式,返回都一样。

(3)、尝试万能密码。获得flag

2、mfw

(1)、页面没有什么特殊的异常,使用dirsearch进行目录扫描,有一些.git文件。看样子是.git文件泄露。

  • 使用githack下载并恢复.git文件:python githack.py URL
  • githack使用:Githack工具安装及使用教程

(2)、查看下载后的文件,只有index.php文件特殊些。有PHP代码,代码审计

  • 使用get请求给page传参,对$page进行拼接赋值给$file,对$file进行判断
  • assert():断言函数,用于判断一个表达式是否为真
  • strpos(var,str):查找var在str中第一次出现的位置

(3)、可以将判断语句闭合掉,使用命令执行漏洞。后面语句注释掉。使用get传参

  • POC:x') or system("cat templates/flag.php");//
    • x处,有没有真实文件都一样
  • 访问后,原本网页可能没有,右击查看源代码

3、fileclude

(1)、访问网页,有一段php代码。代码审计

  • 传入两个文件,当file2的内容为hello ctf时,包含file1文件
  • 没有做过滤,使用文件包含漏洞

(2)、file2内容需要等于hello ctf,可以使用php://input,通过post请求提交一段php代码。

(3)、file1使用php://filter进行任意文件读取,并进行base64编码输出

  •  POC:?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=php://input

(4)、获得base64编码的数据,解码获得flag

4、fileinclude

(1)、右键查看源代码,有一段php代码。代码审计

  • 通过cookie给$lan传入参数,$lan不存在就包含english.php文件,存在就包含文件名基于$lan的值,后缀为'.php'的文件。

(2)、尝试使用php://filter进行任意文件读取

(3)、获得base64编码的数据,解码获得flag

注:另外一题使用base64编码的不行,需要更改convert.* 过滤器

5、ics-05

(1)、只有设备维修中心能跳转,点击跳转。

(2)、查看源代码发现一个a标签中出现?page=index。可能是文件包含漏洞,尝试一下

(3)、尝试php伪协议,给page传入参数

  • POC:?page=php://filter/read=convert.base64-encode/resource=index.php
  • 访问后,查看源代码,最下面有base64编码的字符,解码是一段PHP代码,分析
  • 重要的是测试人员用的那段代码
    • 检查访问者的IP地址是否为'127.0.0.1',判断成功后,进行对变量进行正则匹配
    • preg_replace(rule,dstr,sstr):sstr通过正则匹配规则rule,能匹配到规则的部分被替换为dstr

(4)、故现在只有考虑将xff改为本地和怎么执行命令语句

  • xff使用hackbar更改或bp抓包更改即可
  • 命令执行
    • /e 修正符使 preg_replace() 将 dstr 参数当作 PHP 代码,其他两个参数满足该函数下的规则即可。
  • poc:?pat=/125e/e&rep=system('ls')&sub=125e

(5)、找到有关flag文件,查看即可


http://www.ppmy.cn/news/1463902.html

相关文章

OrangePi AIpro (8T)使用体验,性能测试报告

前言 这段时间收到了CSDN和香橙派的邀请,对OrangePi AIpro进行体验测评,在此感谢CSDN对我的信任,也感谢香橙派能做出如此优秀的开发板。 可喜可贺,周三晚上我收到了官方寄出的OrangePi AIpro。出于对国产芯片的好奇&#xff0c…

04 FreeRTOS 队列(queue)

1、队列的特性 队列可以理解为一个传送带,一个流水线。 队列可以包含若干个数据:队列中有若干项,这被称为"长度"(length) 每个数据大小固定 创建队列时就要指定长度、数据大小 数据的操作采用先进先出的方法(FIFO,First…

Oracle表空间加密全过程极简实验

加密前 准备加密HR Schema中的表。 SQL> col table_name for a20 SQL> select table_name, tablespace_name from all_tables where ownerHR;TABLE_NAME TABLESPACE_NAME -------------------- ------------------------------ DEPARTMENTS …

RabbitMQ02-RebbitMQ简介及交换器

一. AMQP协议 什么是AMQP协议 AMQP(Advanced Message Queuing Protocol,高级消息队列协议):它是进程之间传递异步消息的网络协议 AMQP工作过程 发布者通过发布消息,通过交换机,交换机根据路由规则将收到的消息分发交换机绑定的下消息队列,最…

【Spring Boot】深度复盘在开发搜索引擎项目中重难点的整理,以及遇到的困难和总结

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring Boot】深度复盘在开发搜索引擎项目中重难点的整理,以及遇到的困难和总结 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 什么是搜索引…

爬虫案例-亚马逊反爬流程分析梳理(验证码突破)(x-amz-captcha)

总体概览:核心主要是需要突破该网站的验证码,成功后会返回我们需要的参数后再去请求一个中间页(类似在后台注册一个session),最后需要注意一下 IP 是不能随意切换的 主要难点: 1、梳理整体反爬流程 2、验证…

第53期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

oracle.jdbc.OracleDatabaseException: ORA-00911: 无效字符

先吐槽一句,oracle 真坑啊! 一个很正常的sql 语句一直报 ORA-00911: 无效字符 ,拿到数据库去执行一点问题没有,一运行代码就报错,然后一个字符一个字符的对比,竟然是因为sql 结尾的一个 ";" 导致…