fileclude-CTF 解题思路

简介: fileclude-CTF 解题思路

我们先打开题目场景,如图:

函数理解:
include函数:包含并执行变量或者文件。

if:是if语句用来判断。

isset:判断变量是否存在,值是否为NULL。

$_GET:接收表单提交数据,并把数据附加到url链接当中。

逻辑运算符&&:条件都满足才会执行。

关系运算符!:不、反的意思。

empty函数:只用来判断变量的值是否为NULL。

file_get_contents() 函数:把整个文件读入一个字符串中。

===:判断值是否相同并且判断值的类型是否相同。

else:条件都不满足的时候才会执行它。

die函数:输出内容并退出程序。

一、题目分析:
打开题目场景发现有if嵌套语句,存在flag.php,并且可以执行这个文件。

第一个if语句说的是如果file1和file2这两个变量都存在并且值不是空的,就会存放这两个数据的from表单,并将这个数据表单发送到url中。

第二个if语句说的是如果这两个变量都不为NULL,则返回true,并执行,但是前面加的有关系运算符!,所以说这两个值都是空的才会返回true,并执行。显而易见这两个变量都是存在的,但是值都是空的。

第三个if语句说的是file_get_contents() 函数包含file2变量,当满足file2的值等于hello ctf以及值的类型两者相同(类型是字符串),才会执行包含在include函数中的file1变量。(所以说这里咱们需要用到php://input绕过)

当这三个条件都不满足就会输出NONONO这个字符串。(显然可见这是不可能的)

二、 解题思路:
解题关键是在第三个if语句中,我们可以用php://input输入流来绕过file_get_contents函数,达到执行file1变量的目的,用php://filter伪协议来读取源代码,用来拿到flag。

php://input可以读取没有处理过的POST数据。

php://filter伪协议规则:

php://filter/过滤器|过滤器/resource=待过滤的数据流
构造php://filter伪协议规则:

php://filter/convert.base64-encode/resource=flag.php
完整代码:

?file1=php://filter/convert.base64-encode/resource=flag.php&file2=php://input
?是起始符可以理解为连接拼接的意思,file1是场景代码中的变量,=是赋值的意思。

convert转换,base64,encode编码。

&引用,不同名字访问同一变量的内容。

resource=flag.php转换到flag.php文件中,就是说把flag.php文件转换为base64编码格式。

我们先引用file2变量用来请求数据,把flag.php文件的内容赋值给file1变量,因为最终执行的是file1变量。分析到这里就可以了。

三、解题:
用到的工具有:

火狐浏览器FireFox和Max HackBar火狐浏览器插件(之前那个收费了,这个也可以替代之前那个工具,这个插件可以在火狐浏览器扩展哪里搜索并添加)

1、用火狐浏览器打开场景,并按F12找到Max HackBar插件并点击进入。(如果空白可以刷新下页面)

2、在url链接后边添加伪协议和绕过并在Max HackBar那个页面点击Load URL用来在地址栏那里加载URL地址。(和Split URL性质一样只是把url给分割多行了。)

3、✔Post Data。(传递数据)

4、输入hello ctf。

5、点击Execution。

6、拿到base64编码。

base编码解码拿到flag:

技术有限,如有不足,还望各位师傅们指出。

目录
相关文章
Bugku CTF alert 解题思路
Bugku CTF alert 解题思路
94 1
Bugku CTF Simple_SSTI_1 解题思路
Bugku CTF Simple_SSTI_1 解题思路
83 0
Bugku CTF Simple_SSTI_2 解题思路
Bugku CTF Simple_SSTI_2 解题思路
111 0
|
PHP
BugKu 矛盾 解题思路
BugKu 矛盾 解题思路
74 0
|
6月前
|
JavaScript PHP 数据安全/隐私保护
CTF解题常见套路
CTF解题常见套路
44 0
|
6月前
|
机器学习/深度学习 算法
蓝桥杯正确的解题姿势
蓝桥杯正确的解题姿势
|
算法
【竞赛解题思路】随笔
【竞赛解题思路】随笔
48 0
|
JavaScript
BugKu CTF 计算器 解题思路
BugKu CTF 计算器 解题思路
78 0
[算法刷题题解笔记] 洛谷 P1007 独木桥 [贪心]
[算法刷题题解笔记] 洛谷 P1007 独木桥 [贪心]
|
算法 C++
【每日算法Day 103】老题新做,几乎不会有人想到的解法,它来了
【每日算法Day 103】老题新做,几乎不会有人想到的解法,它来了
104 0