ctfshow-web3(伪协议php://input的利用)

简介: ctfshow-web3(伪协议php://input的利用)

打开题目链接,存在文件包含函数 include

存在文件包含时直接使用PHP伪协议


先介绍一下一个常用的php伪协议:


php://input(用于执行PHP代码)


这是一个只读信息流,当请求方式是post的,并且enctype不等于”multipart/form-data”时,可以使用php://input来获取原始请求的数据,当enctype等于”multipart/form-data”时php://input是无效的。


php://input 可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行,当传入的参数作为文件名打开时,可以将参数设为php://input,同时post写入想要执行的php代码,php执行时会将post内容当作文件内容,从而导致任意代码执行。


例如:

http://127.0.0.1/cmd.php?cmd=php://input

POST数据:<?php phpinfo()?>


利用该方法,我们可以直接写入php文件,输入file=php://input,然后使用burp抓包,写入php代码


这里我先使用的hackbar:


?url=php://input


post:<?php system("ls");?>

但是不知道为什么没有回显

查看源码也是什么也没有

尝试使用burpsuite抓包改包重发

传入的post数据要空一行,否则不会有回显

发现php代码被执行了

直接查看 ctf_go_go_go

?url=php://input

post:<?php system("cat ctf_go_go_go");?>

拿到flag


ctfshow{dd40f825-6cd2-49fc-8148-03ef4563e0da}


此外,再告诉大家一些可能遇到的文件包含函数:

include


require


include_once


require_once


highlight_file


show_source


flie


readfile


file_get_contents


file_put_contents


fopen



存在文件包含时就应该想到php伪协议的利用

目录
相关文章
|
8天前
|
安全 编译器 PHP
PHP 8.1版本发布:引领Web开发新潮流
PHP编程语言一直是Web开发的主力军,而最新发布的PHP 8.1版本则为开发者们带来了更多创新和便利。本文将介绍PHP 8.1版本的主要特性,包括更快的性能、新的语言功能和增强的安全性,以及如何利用这些功能来提升Web应用程序的质量和效率。
|
12天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
8月前
|
运维 关系型数据库 MySQL
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(二)
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(二)
203 0
|
5月前
|
PHP
.htaccess web php 文件详解
.htaccess web php 文件详解
22 0
|
8月前
|
运维 关系型数据库 MySQL
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(一)
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)
176 0
|
9月前
|
JSON 前端开发 API
layui框架实战案例(8):web图片裁切插件croppers.js组件实现上传图片的自定义截取(含php后端)
layui框架实战案例(8):web图片裁切插件croppers.js组件实现上传图片的自定义截取(含php后端)
386 0
|
9月前
|
PHP
php://input的理解应用
php://input的理解应用
33 0
|
10月前
|
机器学习/深度学习 人工智能 物联网
PHP的未来:超越Web开发
PHP的未来:超越Web开发
100 0
|
10月前
|
网络协议 Java PHP
我的小工具-远程读卡器web客户端(PHP+LUA)
我的小工具-远程读卡器web客户端(PHP+LUA)
|
10月前
|
存储 PHP
【web 开发基础】PHP 变量的作用范围 (29)
变量的作用范围也就是他的生效范围。大部分的PHP变量只有一个单独的使用范围,也包含了include和require引入的文件。当一个变量执行赋值的动作后,会随着声明区域的位置差异而有不同的使用范围。大致上说,变量会依据声明的位置分为局部变量和全局变量两种。
63 1