一、三种php伪协议
1.php://filter
可进行任意文件的读取,并进行base64编码输出,利用这种方法可获得加密的网页源码.
用法:php://filter/read=convert.base64-encode/resourec=/var/www/html/xxx.php
若过滤了base64-encode,还可以用convert.iconv.*将数据流的内容按照「指定字符编码」来转换,使用格式有两种:
convert.iconv.<input-encoding>.<output-encoding> convert.iconv.<input-encoding>/<output-encoding>
2.php://input
利用php中流的概念,将原本的include的文件流重定向到了用户可控制的输入流中命令执行,post请求输入想要执行的代码.
用法:php://input POST:需要写入的数据
3.data://
通过执行资源类型,使后面的内容当做文件内容来执行,从而造成任意代码执行.
用法:data://text/plain,<?php eval($_POST[w]);?>
二、write up
1.php://input
hackbar构造payload后bp抓包,注:hackbar发送post包需键值对的形式.
2.data://
最后将base64编码解码即可。