一、命令执行漏洞介绍

1.命令执行漏洞简介
命令执行漏洞时指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一,也属于代码执行的范围内。

2.命令执行漏洞的原理
应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用System()、exec()、shell_exec()、passthru()、popen()、proc_popen()等函数可以执行系统命令。当攻击者可以控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击。命令执行主要是对输入的命令没有进行过滤,攻击者可以使用&、&&、|、||等命令拼接自己想要查看的信息的相关命令,这样,连同攻击者的命令就会一块执行,这样就造成了命令执行漏洞。

3.命令执行漏洞产生的原因
(1):代码过滤不严或者无过滤。(没有过滤&、&&、|、||等连接符)
(2):系统漏洞造成的命令执行,bash破壳漏洞,该漏洞可以构造环境变量的值来执行具有攻击力的脚本代码,会影响到bash交互的多种应用,如http、ssh和dhcp等。
(3):调用第三方组件,如php(system()、shell_exec()、exec()、eval()),java(struct2),thinkphp(thinkphp是一个老牌的php)(比如一句话木马<?php @eval($\_GET\[cmd\]); ?>)

4.命令执行常用的管道符

  • Windows
    (1):“|”:无论前面的命令是否执行成功,直接执行后面的命令(并且只执行后面的命令,不显示前面的命令执行结果)。
    (2):“||”:如果前面的命令执行成功,则不执行后面的命令;如果前面的命令执行失败,则会执行后面的命令。
    (3):“&”:如果前面的命令执行成功,则会接着去执行后面的语句;如果前面的语句执行失败,还会执行后面的语句。
    (4):“&&”:如果前面的命令执行成功,后面的命令也会执行;如果前面的命令执行失败,则会直接报错。
  • Linux
    (1):“;”:执行完前面的命令再执行后面的命令。如果前面的命令执行成功,后面的命令也会执行;如果前面的命令执行失败,则会执行后面的命令。
    (2):“|”:无论前面的命令是否执行成功,直接执行后面的命令(并且只执行后面的命令,不显示前面的命令执行结果)。
    (3):“||”:如果前面的命令执行成功,则不执行后面的命令;如果前面的命令执行失败,则会执行后面的命令。
    (4):“&”:如果前面的命令执行成功,则会接着去执行后面的语句;如果前面的语句执行失败,还会执行后面的语句。
    (5):“&&”:如果前面的命令执行成功,后面的命令也会执行;如果前面的命令执行失败,则会直接报错。

5.命令执行中常用的命令

  • Windows
    dir----查看文件目录
    ipconfig----查看Windows的IP地址
    arp -a----查看ARP缓存表
    calc----在命令行打开计算器
    regedit----打开注册表
    netstat -ano----查看开放的端口信息
  • Linux
    cat /etc/passwd----查看passwd文件
    id----查看该用户的ID号
    groups----查看用户所属的组
    cat /etc/group----查看组信息
    whoami----查看当前用户
    pwd----查看当前路径
    uname -a----查看主机信息
    cat /etc/issue----查看主机的配置信息
    netstat -pantu----查看开放的端口信息
    netstat -nr----查看路由信息
二、命令执行漏洞实例

注意:以下测试是基于DVWA上进行的!

Windows

1.“|”:无论前面的命令是否执行成功,直接执行后面的命令(并且只执行后面的命令,不显示前面的命令执行结果)
127.0.0.1|dir(前面的命令执行成功,但是只显示后面的命令结果)
在这里插入图片描述
pwd|dir(前面的命令执行失败,但却执行了后面的命令)
在这里插入图片描述

2.“||”:如果前面的命令执行成功,则不执行后面的命令;如果前面的命令执行失败,则会执行后面的命令
127.0.0.1|dir(前面的命令执行成功,只显示前面的结果)
在这里插入图片描述
dir||ipconfig(前面的命令执行失败,只执行了后面的命令)
在这里插入图片描述

3.“&”:如果前面的命令执行成功,则会接着去执行后面的语句;如果前面的语句执行失败,还会执行后面的语句
127.0.0.1&dir(前面的命令执行成功,两条命令都执行)
在这里插入图片描述
ipconfig&dir(前面的命令执行失败,只执行了后面的命令)
在这里插入图片描述

4.“&&”:如果前面的命令执行成功,后面的命令也会执行;如果前面的命令执行失败,则会直接报错
ipconfig&&dir(前面的命令执行失败,直接报错)
在这里插入图片描述
127.0.0.1&&dir(前面的命令执行成功,后面的命令也会执行)
在这里插入图片描述

Linux

1.“;”:执行完前面的命令再执行后面的命令。如果前面的命令执行成功,后面的命令也会执行;如果前面的命令执行失败,则会执行后面的命令
127.0.0.1;pwd(前面的命令执行成功,后面的命令也会执行成功)
在这里插入图片描述
ls;pwd(前面的命令执行失败,只执行后面的命令)
在这里插入图片描述

2.“|”:无论前面的命令是否执行成功,直接执行后面的命令(并且只执行后面的命令,不显示前面的命令执行结果)。
127.0.0.1|pwd(前面命令执行成功,执行后面命令,只显示后面命令执行的结果)
在这里插入图片描述
ls|pwd(前面命令执行失败,执行后面命令,只显示后面命令执行的结果)
在这里插入图片描述

3.“||”:如果前面的命令执行成功,则不执行后面的命令;如果前面的命令执行失败,则会执行后面的命令。
127.0.0.1||pwd(前面的命令执行成功,后面的命令不会执行)
在这里插入图片描述
ls||pwd(前面的命令执行失败,然后会执行后面的命令)
在这里插入图片描述

4.“&”:如果前面的命令执行成功,则会接着去执行后面的语句;如果前面的语句执行失败,还会执行后面的语句。
127.0.0.1&pwd(前面的命令执行成功,接着执行了后面的命令)
在这里插入图片描述
ls&pwd(前面的命令执行失败,还是会执行后面的命令)
在这里插入图片描述

5.“&&”:如果前面的命令执行成功,后面的命令也会执行;如果前面的命令执行失败,则会直接报错。
127.0.0.1&&pwd(前面的命令执行成功,后面的命令也执行成功)
在这里插入图片描述
ls&&pwd(前面的命令执行失败,直接报错)
在这里插入图片描述

三、防御命令执行的方法

1.尽量不要使用命令执行函数,尽量不要执行外部命令
2.使用自定义函数或者函数库来代替外部命令的功能
3.客户端提交的变量在进入执行命令函数钱要做好过滤和检测
4.在使用动态函数之前,确保使用的函数是指定的函数之一
5.对PHP语言来说,不能完全控制的危险函数最好不要使用

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

img

2、Linux操作系统

img

3、WEB架构基础与HTTP协议

img

4、Web渗透测试

img

5、渗透测试案例分享

img

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

3、适合学习的人群

‌一、基础适配人群‌

  1. ‌零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. ‌开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. ‌应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

‌二、能力提升适配‌

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

img

更多推荐