BUUCTF:[BJDCTF2020]ZJCTF,不过如此 && 攻防世界web之ics-05 -- -preg_replace + /e 的任意代码执行漏洞

本文介绍了BJDCTF2020和攻防世界web之ics-05中的preg_replace漏洞利用,重点讨论了/e修正符导致的RCE问题。讲解了如何通过正则表达式和可变变量实现代码执行,强调了了解此漏洞及正则反向引用、PHP可变变量的重要性和应用。
摘要由CSDN通过智能技术生成

加一个题: 攻防世界web之ics-05
也是这个preg_replace

一、不足:

  1. 在文件包含那里卡住了,想着flag.php还是next.php10多分钟后才想到可以用filter协议来读么,,,等一会看看能不能用data协议来读去???
    这个可以的:index.php?text=data://text/plain,I have a dream&file=php://filter/convert.base64-encode/resource=next.php
  2. 看到正则+str_replace,+ e 修正符,想到的是RCE!?!!。
  3. 知识点:/e模式的preg_replace,有一个远程代码执行漏洞

二、知识点:

  1. 点这个:深入研究preg_replace与代码执行。讲真,里面的一些python的小脚本可以学习学习呦
  2. 看这个我自己吸收了一波之后的:正则中\1的用法—反向引用
  3. 那个可变变量的花括号,就像是C语言中的小括号一样,明确变量名字的,没有什么实际意义的
  4. 真就直接就执行了呗,(这里去掉花括号不行!!!不行!!!!)这个是给 第一点 实验用的。那个第一点中的 爬坑三 有详细解释。讲的很棒的,既然这个 ${phpinfo()} 能传,
  5. 这个 ** \S=${getFlag()} ** 的意思就是执行代码的意思了,我看了,大牛写的博客中也没有说为什么使执行代码,只是讲了怎么构造使之执行代码,。一样的 换成phpinfo()一样执行
    在这里插入图片描述

三、做完题,看完博客后的 要求:

  1. 这个套路要会用,看到这个 preg_replace 和 /e 的组合运用的时候,要能够想到使这个代码执行来
    然后

  2. 正则的反向代理\1得会,

  3. 还有PHP得 可变变量 也要弄得明明白白的!

四、我的思路:没有做出来,,,

php://input 一下子想到了,但是这个文件包含的还是慢了点,这个php://input换成data伪协议也可以做的

这个可以的:index.php?text=data://text/pl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值