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

3.[BUUCTF HCTF 2018]WarmUp1

1.看题目提示分析题目内容

盲猜一波~ : 是关于PHP代码审计的

2.打开链接,分析题目

给你提示了我们访问source.php来看一下

大boss出现,开始详细手撕~

3.手撕PHP代码(代码审计)

本人是小白,所以第一步,先问chatGPT的意见:

这个主要是对class  emmm类的分析,然后还有后面的三个&& 条件判断:

结合代码去理解GPT给的解释,就可以很容易形成一个思路:

重点在:

 if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  

输入一个包含flag文件的文件名作为请求头,然后再检查该请求文件经过checkFile检查(是否为白名单的文件,是的话就检查通过;不是的话,检查失败,输出你亲爱的滑稽),检查成功,得到flag。

4.开始解题

有点可疑,去看一下

这有一个点,flag在ffffllllaaaagggg:记住遇到这样的,一般情况下这个文件存储在linux服务器的根目录下,需要去获得其内容。

../../../../../../../../../../ffffllllaaaagggg
(../那么多是为了确保能够返回根目录)

大概意思是source.php文件检查之后,请求文件会被替换成../../../../../../../ffffllllaaaagggg,作为路径遍历攻击。

EXP

在source.ph 文件中,为file进行赋值,赋值内容为whitelist的内容,再被替换成我们的路径遍历攻击,夺旗成功。

因为whiteList中有两个已知的白名单文件:source.php & hint.php

所以有两个解法:

source.php?file=source.php?/../../../../../../../../../ffffllllaaaagggg
source.php?file=hint.php?/../../../../../../../../../ffffllllaaaagggg

http://www.lryc.cn/news/268110.html

相关文章:

  • rocky linux9 安装go 即接下去
  • NLP中的嵌入层
  • MongoDB文档操作
  • 解决谷歌浏览器下CSS设置字体小于12px无效办法,关于如何在chrome里实现小于12px的文字。
  • springboot(ssm智慧校园之家长子系统 智慧校园系统Java系统
  • RM3100 stm32驱动(硬件i2c)
  • 视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数
  • leetcode 1576. 替换所有的问号(easy)(优质解法)
  • Advanced IP Scanner - 网络扫描器
  • 搜索百度百科官方创建入口,怎么创建更新公司的百度百科词条呢?
  • 大数据与人工智能|全面数字化战略与企业数字化转型(第1节 )
  • 【四】【C语言\动态规划】地下城游戏、按摩师、打家劫舍 II,三道题目深度解析
  • 【大数据存储与处理】开卷考试总复习笔记
  • HTML 实操试题(一)
  • 创龙瑞芯微RK3568设备树1(修改设备树GPIO和串口)
  • R语言【dplyr】——filter保留符合筛选条件的行,以数据的行为单位,创建子集
  • 几种串口扩展电路
  • 实战10 角色管理
  • Lua的底层原理与C#交互原理浅析【更新中】
  • 鸿蒙项目二—— 注册和登录
  • Dijkstra(迪杰斯特拉)算法总结
  • 设计模式?!
  • Pytorch项目,肺癌检测项目之三
  • 深圳鼎信|输电线路防山火视频监控预警装置:森林火灾来袭,安全不留白!
  • 【Bash/Shell】知识总结
  • 单例模式(C++实现)
  • ElasticSearch 聚合统计
  • SpringIOC之MethodBasedEvaluationContext
  • 【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手
  • 钦丰科技(安徽)股份有限公司携卫生级阀门管件盛装亮相2024发酵展