命令执行——命令执行漏洞概述(一)

普及内容

了解命令执行定义
了解命令执行条件
掌握命令执行成因
了解命令执行危害
掌握命令执行实例
掌握管道符号和通用命令符
了解命令执行常见场景

基础概念

命令执行定义

基本定义
命令执行漏洞是指攻击者可以随意执行系统命令,分为远程命令执行(远程代码执行)和系统
命令执行两类
原理
程序应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命
令拼接到正常命令中,从而造成命令执行攻击。

命令执行的条件

两个条件
用户能够控制的函数输入
存在可以执行代码或者系统命令的危险函数

命令执行成因

命令执行漏洞产生的原因
由于开发人员编写源码时,没有针对代码中可执行的特殊函数入口做过滤,导致客户端
可以提交恶意构造语句,并提交服务端执行
命令注入攻击中,Web服务器没有过滤类似system、eval和exec等函数,是该漏洞攻击
成功的主要原因。

命令执行危害

继承Web服务程序的权限去执行系统命令(任意代码)或读写文件
反弹shell
控制整个网站甚至控制服务器
进一步内网渗透

命令执行实例

小马,动态、危险函数调用导致代码执行等

管道符号和通用命令符

>Linux
;前面的执行完执行后面的
|是管道符,显示后面的执行结果
||当前面的执行出错时执行后面的
>Windows
&前面的语句为假则直接执行后面的
&&前面的语句为假则直接出错,后面的也不执行
|直接执行后面的语句
||前面出错执行后面的

通用命令符
command1 && command2        command1执行成功才执行command2
command1 I command2           只执行command2
command1 & command2           command1和command2之间互相不影响

命令执行常见场景

Ping主机
DNS请求
Office文档
框架缺陷

你可能感兴趣的:(命令执行,web安全,安全)