CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

小白一个,记录解题过程,如有错误请指正!

一、eval执行

知识点:

        eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入任何由用户提供的、未经完整验证过的数据 。

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

1.用ls查看当前目录,没有发现什么

?cmd=system("ls");

        system():执行系统命令并输出执行结果

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

2.查看根目录,发现了flag

?cmd=system("ls%20/");

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

3.读取flag_26396内容即可

?cmd=system("cat%20/flag_26396"); 

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

二、文件包含

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

1.题目给了一个shell,点击之后发现是一句话木马

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

考点:include

解释:假如在index.php中include了一个文件,那么不管这个文件后缀是什么 这个文件中的内容将会直接出现在index.php中。

思路:只要我们把shell.txt的一句话木马内容传到index.php,就可以用蚁剑连接。

padload:

?file=shell.txt

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

 2.在根目录最下面找到flag

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

 或者 打开终端  cat /flag

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

三、php://input

        进来发现又是一段源码,大概意思是必须要php://+payload,看到这会想到php://input和php://filter,不过根据题目可以知道这题要用php://input伪协议

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码
 不过还是进入phpinfo看一下allow_url_include是否打开,发现没有问题
CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

 1.使用burp进行改包

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

 2.修改payload后发送,发现什么都没有

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

3.去根目录看一下,发现flag

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

4.拿到flag

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

四、远程包含

发现php://input还可以使用,解题方式与上题相同。

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

五、读取源代码

1.进来发现题目直接给出flag的位置了,用之前的php://input伪协议burp改包发现不管用了,应该是allow_url_include:off 了(默认off,on状态php://input伪协议才可以使用)。

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

2.我们可以用php://filter实现对文件的访问

?file=php://filter/resource=/flag

 

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

3.还可以用下面的payload实现flag以base64加密形式输出:

?file=php://filter/read=convert.base64-encode/resource=/flag

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码
 

参考文章:

https://blog.csdn.net/weixin_50464560/article/details/117385343

https://blog.csdn.net/m0_52432374/article/details/115186285

https://www.cnblogs.com/linuxsec/articles/12684259.html

                       

点击阅读全文

上一篇 2023年 6月 15日 am10:15
下一篇 2023年 6月 15日 am10:18