码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 云尘 命令执行系列


    第一题 system

    1. include "flag.php";
    2. if (isset($_POST['cmd'])) {
    3. system($_POST['cmd']);
    4. }
    5. show_source(__FILE__);

    代码如上

    system($_POST['cmd']);

    POST请求发送一个名为 cmd 的参数,然后将该参数的值传递给系统命令执行函数 system(),这意味着可以发送任意系统命令并执行它们。

    我们用post方式传入cmd=cat flag.php

    得到flag

    第二题 assert

    代码如下

    1. include "flag.php";
    2. //assert("phpinfo()");
    3. if (isset($_POST['cmd'])) {
    4. $a = $_POST['cmd'];
    5. assert($a);
    6. }
    7. show_source(__FILE__);

     代码审计

    assert($a);

    //assert() 函数它允许执行任意的PHP代码字符串。在这里,它被用来执行 $a 变量中的代码。这意味着用户可以通过POST请求的 "cmd" 参数注入并执行他们想要的PHP代码

    show_source(__FILE__);

    //show_source() 函数用于显示当前脚本的源代码。这意味着通过浏览器访问这个脚本时,您将能够看到脚本的源代码,包括 flag.php 文件的内容

    if (isset($_POST['cmd']))

    //这个条件检查是否存在名为 "cmd" 的POST请求参数。

    $a = $_POST['cmd'];

    //如果 "cmd" 参数存在,它的值被赋给了变量 $a。

    我们用cmd执行system命令中的读取flag命令,得到flag

    第三题  签到1-eval

    1. include "flag.php";
    2. if (isset ($_POST['cmd'])) {
    3. eval($_POST['cmd']);
    4. }
    5. show_source(__FILE__);

    代码如上

    我们post个cmd,让cmd去执行system系统命令

    cmd=system(' cat flag.php');

    payload:

    知识点:

    • php insert函数

    isset() 函数用于检测变量是否已设置并且非 NULL

    若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。

    同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。

    • php assert函数

    assert() 函数它允许执行任意的PHP代码字符串

    • system函数

    在c语言代码中,cmd命令,皆可以字符串形式,作为system函数的参数,调用system函数执行命令

    (注意,如,system("color f4"),命令是放在一对双引号里的

    • 文件读取命令

    使用cat命令 cat flag.php

    使用tac命令 tac flag.php

    绕过空格过滤 cat${IFS}flag.php

                cat$IFS$1flag.php

  • 相关阅读:
    【高度预估】基于matlab卡尔曼滤波和粒子滤波无人机离地高度估计【含Matlab源码 2255期】
    数据分析实战 | 关联规则分析——购物车分析
    2023 OceanBase 年度发布会:砥砺自研,为“关键业务负载”打造一体化数据库
    编译器优化:何为SLP矢量化
    SpringMVC-HttpMessageConverter(请求体/响应体)/文件下载与上传)
    在linux下安装jenkins
    最长公共子序列(最详细的动态规划案例)
    【1】c++11新特性(稳定性和兼容性)—>原始字面量
    (数据科学学习手札142)dill:Python中增强版的pickle
    Android SurfaceFlinger做Layer合成时,如何与HAL层进行交互
  • 原文地址:https://blog.csdn.net/m0_75178803/article/details/134275384
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号