Web安全——命令注入漏洞详解

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Web安全——命令注入漏洞详解
点赞后看,养成习惯
喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!

本文将针对以下问题逐条进行解答:

01 命令执行漏洞是什么?

02 为什么会有命令执行漏洞?

03 命令执行漏洞可以用来做什么?

04 我们该如何使用命令执行漏洞?

05 修复方案是什么?

06 什么情况下考虑命令执行漏洞?


image.png



01 命令执行漏洞概念

简单来说, 命令执行漏洞就是黑客能够通过控制外部参数可以达到执行系统命令的效果。

image.png

相较于代码执行漏洞来说,代码执行漏洞是 靠执行脚本代码调用操作系统命令,而命令执行漏洞是直接调用系统命令的漏洞,也叫做os命令执行漏洞。



02 命令执行漏洞产生的原因

原因主要有二:

1.外部参数可控

应用程序调用了执行系统命令的函数,比如服务器程序通过 system、eval、exec等函数直接或者间接地调用 cmd.exe

image.png

黑客能控制这些函数中的参数,比如可以通过浏览器或者其他客户端软件提交一些cmd命令(或者bash命令)至服务器程序。

2.内部拼接命令

服务器将 输入的恶意参数拼接到正常命令中 ,从而执行命令造成攻击



03 命令执行漏洞的危害

黑客如果能够利用命令执行漏洞,那么黑客就可以像电脑用户控制自己电脑一样, 自由地对电脑进行操作,比如开启防火墙、添加路由、开启远程服务等等操作

image.png




04 命令执行漏洞的利用方式
这里以一道CTF题举栗子

1.找到一个可以自己输入参数的页面

如攻防世界中的一道Web题目

image.png

页面场景如下:

image.png


尝试输入本地地址127.0.0.1,观察回显内容

image.png


发现返回内容相似命令行下ping命令返回结果,初步判断可能存在命令执行漏洞

2.利用管道符辅助测试

在场景利用前,我先岔开话题分享一下有关于管道符的一些知识

在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。

下面列举
windows系统 linux系统**支持的管道符命令:


windows系统支持的管道符:
示例 用法
a \ b 直接执行命令b
a \ \ b a为假 ,才执行b
a & b a可真可假,若为假则直接执行b
a &&b a为真,b才能执行
linux系统支持的管道符:
示例 用法
a;b 执行完再执行b
a \ b 直接显示b的执行结果
a \ \ b a错,b才执行
a & b a可真可假,若为假则直接执行b
a && b a为真才能执行b

很多时候,我老是忘记符号之间的区别,于是我花心思想了个小技巧记忆,在这里也分享给大家:

|是棍子,单打独斗:
a | b : b是主角,一根棍子的时候不在意a的死活,执行自己的就完事
a || b :b是主角,两根棍子的时候,戾气很重,非要打死a,只有a死了才能执行自己的

image.png


&是拉手,和谐共处:
a & b : b是主角,一次拉手是表面朋友,不管你a是死是活,我都会执行
a & b : b是主角,两次拉手是死党,只有a过得好好的,我才会也执行的好好的

image.png

好,回到这个web场景。我们在第一步的时候判断此处存在系统命令执行漏洞,于是我们使用管道符|进行测试,发现果然可以执行系统命令。

image.png

经过了后续的命令执行,我们很容易的获得了本题的flag

image.png

image.png

总结一下,这道题就是简单考察我们对命令注入漏洞中管道符的使用,较为简单。


05 修复命令执行漏洞漏洞的方案

1.设计者尽可能少设计使用一些命令执行函数,

2.若有必要使用,那么必须对特殊函数做过滤,对用户输入的命令做检查,对客户端提交的变量在进入执行命令前做好过滤和检查等



06 什么情况下考虑命令执行漏洞?

作为一个安全老司机,当我们看到一个可输入参数的位置,心里就要有点痒痒

这时候我们可以尝试使用SQL注入、命令注入试试手,然后查看返回结果,如果返回的内容是命令执行返回的内容,那我们尝试使用管道符辅助测试,比如 127.0.0.1 | whoami

目录
相关文章
|
2天前
|
SQL 安全 Java
理解Web安全:防止Java Web应用的安全漏洞
【4月更文挑战第3天】在互联网时代,Java Web应用面临严峻的安全挑战,包括注入攻击、XSS、CSRF等。为保护应用,需实施安全措施和最佳实践:如输入验证、输出编码、使用安全框架、防范CSRF、管理会话、加密数据、智能错误处理及定期安全审计。通过这些方法,可降低安全风险,但需持续关注安全趋势并适应新技术。
|
2天前
|
安全
网易web安全工程师进阶版课程
《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心知识,成为安全领域高精尖人才。 ## 学习地址
24 6
网易web安全工程师进阶版课程
|
2天前
|
SQL 云安全 安全
常见的web漏洞,网站漏洞该怎么办
随着互联网的发展,网站安全成为企业和个人关注焦点,尤其网站漏洞可能导致数据泄露、系统崩溃等严重后果。本文介绍了四种常见网站漏洞:XSS、SQL注入、文件包含和CSRF,以及它们的危害。为解决这些问题,建议加强代码审查、输入验证、使用安全API和库、访问控制等措施。此外,德迅云安全的漏洞扫描VSS服务可在Web漏洞扫描、弱密码扫描和中间件扫描等场景中发挥作用,帮助企业及时发现并处理安全问题,保障网站安全。
|
2天前
|
网络协议 网络虚拟化
网工配置命令总结(1)---Web访问及vlan配置
网工配置命令总结(1)---Web访问及vlan配置
4 0
|
2天前
|
XML 云安全 安全
了解常见的web漏洞-XXE漏洞,日常如何做好web安全
随着网络技术的不断发展,网站安全问题日益受到人们的关注。当前随着技术发展,网站存在一些常见的可能被攻击者利用的漏洞,而在众多网站安全漏洞中,XXE(XML External Entity)漏洞是一个不容忽视的问题。今天我们就来分享了解一下关于XXE漏洞的概念、原理以及日常上有哪些可以措施可以防护网站安全。
|
2天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
21 0
|
2天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
2天前
|
SQL 安全
CTF--Web安全--SQL注入之‘绕过方法’
CTF--Web安全--SQL注入之‘绕过方法’
|
2天前
|
SQL 安全 PHP
CTF--Web安全--SQL注入之Post-Union注入
CTF--Web安全--SQL注入之Post-Union注入
|
2天前
|
SQL 存储 安全
CTF--Web安全--SQL注入之报错注入
CTF--Web安全--SQL注入之报错注入