攻防世界-Ics-05-胎教版wp

前言

  • 考点:PHP伪协议进行文件读取,base64编码字符串特点,信息搜集能力prey_replace()函数
  • 1.PHP伪协议:php://filter/convert.base64-encode/resource=文件名
  • 2.Prey_replace()函数:时PHP中的一个函数,用来执行一个正则表达式的搜索和替换,定义如下

解释

  • 特别说明: /e 修正符使 preg_replace()replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后),要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误,那我们知道 preg_replace/e 修正符会将 replacement 参数当作 php 代码,并且以 eval 函数的方式执行,前提是 subject 中有 pattern 的匹配(二者有相等的值)

解题步骤:

  • 1.进入实例,根据题目提示,在设备维修中心有后门,我们打开设备维修中心

    没有什么异常,查看网页源码,发现异常

    点击超链接,进入下一个页面
  • 2.URL参数上显示index,页面也渲染出来了index,猜测参数的值与页面呈现内容相关,尝试将page的值改为1,果然页面渲染为1,验证了我们的猜想,我们接下来一次尝试可能的文件名,看看是否会有回显

    在输入,index.php是返回OK,猜测index.php可能是正确答案,只是我们的姿势不对,结合文件包含漏洞的猜测,使用php伪协议尝试,输入page=php://filter/convert.base64-encode/resource=index.php,执行得到页面回显

    进行base64解码,得到一段PHP代码
  • 3.进行代码审计。这里给出关键部分





  • 4.我们查一下prey_replace()函数,具体解释写在上面了,发现这里可以成为我们的恶意代码执行点,我们先使用BP抓包,在请求头处添加X-Forwarded-For:127.0.0.1,再根据要求构造传入参数

    得到回显

继续查询

由于空格会导致断参,使用%20代替空格,得到回显

继续

得到回显

现在我们要获取flag.php的内容

得到回显

相关推荐
灯澜忆梦7 小时前
GO_并发编程---定时器
开发语言·后端·golang
-银雾鸢尾-7 小时前
C#中的StringBuilder相关方法
开发语言·c#
-银雾鸢尾-7 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#
天天进步20158 小时前
UI-TARS 源码解析 #10:parse_action 源码解析:如何用 AST 安全解析模型生成的函数调用?
安全·ui
大模型码小白8 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
大耳朵-小飞象9 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
Ljwuhe10 小时前
C++——多态
开发语言·c++
心平气和量大福大11 小时前
C#-WPF-Window主窗体
开发语言·c#·wpf
wuhanzhanhui12 小时前
视觉革命与主动安全:2026武汉汽车电子展会定档,看芯片如何定义驾驶
安全·汽车