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

CTF-web-攻防世界-3

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文件,查看即可

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IT廉连看——UniApp——事件绑定
  • 使用FFmpeg推流实现在B站24小时点歌直播
  • 电路仿真软件:点亮教学新篇章,十大便利助力高效学习
  • -FIT5197
  • 基于Kafka的日志采集
  • ArcGIS提取含有计曲线的等高线
  • 设置环境变量,忽略yarn对node的版本检查
  • 行业分析---造车新势力之蔚来汽车
  • [力扣题解] 463. 岛屿的周长
  • 解释JAVA语言中关于方法的重载
  • JMeter正则表达式提取器和JSON提取器基础用法,小白必会!
  • [BT]小迪安全2023学习笔记(第29天:Web攻防-SQL注入)
  • 第一章:操作系统概述
  • CSDN 自动评论互动脚本
  • sudo apt install make;make build ;make start
  • python3.6+scrapy+mysql 爬虫实战
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【347天】每日项目总结系列085(2018.01.18)
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • C语言笔记(第一章:C语言编程)
  • es6要点
  • If…else
  • IOS评论框不贴底(ios12新bug)
  • Rancher如何对接Ceph-RBD块存储
  • Solarized Scheme
  • vue-loader 源码解析系列之 selector
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 实现简单的正则表达式引擎
  • 通过npm或yarn自动生成vue组件
  • 一份游戏开发学习路线
  • 一些关于Rust在2019年的思考
  • 译有关态射的一切
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #Lua:Lua调用C++生成的DLL库
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (13)DroneCAN 适配器节点(一)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (学习总结16)C++模版2
  • .JPG图片,各种压缩率下的文件尺寸
  • .net 反编译_.net反编译的相关问题
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .NET值类型变量“活”在哪?
  • .Net中间语言BeforeFieldInit
  • /etc/motd and /etc/issue
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ IO.File ] FileSystemWatcher
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [383] 赎金信 js
  • [8] CUDA之向量点乘和矩阵乘法
  • [AIGC] 广度优先搜索(Breadth-First Search,BFS)详解