CTFHUB-技能树-Web-RCE(上)

这一篇关于php伪协议

eval执行

eval函数应该都知道,就是把字符串按照 PHP 代码来计算

这里源代码没有进行任何过滤

所以直接可以传参

①?cmd=system('ls /');

②?cmd=system('cat /flag_25186');

一个好的web手一定不会忘掉;号

文件包含

题目是这样的

它里面已经有一个shell.txt,内容是一句话木马,那岂不是可以为所欲为了

构造一下

然后cat一下就出来了

php://input

这是一个伪协议,主要用来接受post数据,将post请求中的数据作为php代码执行

所以post请求里要写上php代码,格式如下

然后cat一下就好啦

读取源代码

这里介绍另一个php伪协议,php://filter协议,主要用来查看源码(或者已知文件名的文件)

一般格式:参数=php://filter/(read.)convert.base64-encode/resource=include.php(以base64加密方式读取)

也可以直接读取:php://filter/resource=xxx

本题就是直接读取,因为提示了flag的位置

远程包含

含义:包含攻击者指定url文件

这题好像没有考到,还是用的伪协议

补充:php的伪协议还有

一:php://file文件,用于当../(相对路径)被屏蔽时,格式:参数=file:///C:windows/win.ini
二:zip://、bzip2://、zlib://协议:可以访问压缩文件中的子文件,格式:zip://压缩文件绝对路径#(#可以写成其url形式:%23)压缩文件内的子文件名
三:phar://协议:类似zip协议,但是可以使用相对路径,格式:phar://压缩文件绝对或相对路径/压缩文件内的子文件名
四:data://协议:将原本的include的文件流重定向到了用户可控制的输入流中,格式:参数=data://text/plain,<?php phpinfo();也可以写成base64形式:data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA==

posted @ 2020-09-24 11:37  Web_Fresher  阅读(268)  评论(0编辑  收藏  举报