首页 > 其他分享 >命令执行_代码执行漏洞

命令执行_代码执行漏洞

时间:2023-07-28 20:34:27浏览次数:33  
标签:shell 函数 命令 代码 exec 漏洞 代码执行 执行

远程代码注入漏洞

原理

攻击者可利用代码注入漏洞执行任意代码,来操作服务器

危害

执行任意代码,来操作服务器

操作数据库,插入恶意数据,可能获取 系统权限

攻击修改系统配置,修改网络配置,可能对 服务器及网络造成影响

可以进一步对网络渗透,由于代码注入攻击多半可获取系统权限,对网络的进一步渗透难度大大降低

代码执行、文件读取、命令执行的函数:

文件执行:eval、call_user_func、call_user_func_array 、assert()等

文件读取:fopen()、readfile()、fread()、file()、show_source()等

命令执行:system()、exec()、shell_exec()、passthru()、pcntl_exec() 等;“反引号()

反引号()

实际调用的shell_exec()函数

防御

敏感函数禁用

变量过滤或固定

WAF产品

修复方法

不需要执行远程代码时,可以修改php.ini配置:allow_url_fopen = Off allow_url_include = Off

不要直接导入用户输入的内容

执行代码的参数,或文件名,禁止和用户输入相关,只能由开发人员定义代码内容,用户只能提交“1、2、3”等参数,代表相应代码。

命令执行漏洞

原理:

攻击者通过web应用执行系统命令,获得敏感信息,进而控制服务器攻击内网。

产生条件

应用调用执行命令的函数

将用户输入的内容作为系统参数拼接到命令中

没有对用户输入的内容过滤或过滤不严格

产生原理

应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。

防御方法

少用执行命令的函数或者禁用

参数值使用引号包括,并在拼接前调用addslashes函数进行转义

在使用动态函数前,确保使用的函数是指定的函数之一

在进入执行命令的函数方法之前,对参数进行过滤,对敏感字符进行转义

对于可控点是程序参数的情况下,使用escapeshellcmd函数进行过滤

严格控制文件名参数值,先判断文件名或文件路径是否合法

危害

继承Web服务程序的权限去执行系统命令或读写文件。

反弹shell(就是控制端监听在某个端口,被控制发起请求到该端口,并将其命令行的输入输出转到控制端)

控制整个网站甚至控制服务器。

为什么需要反弹shell

反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形。在渗透过程中,往往因为端口限制而无法直连目标机器,此时需要通过反弹shell来获取一个交互式shell,以便继续深入。

进一步内网渗透

命令执行漏洞怎么发现?

通过nessus扫描器的Sitemap模块,发现了可疑目录

根据sitemap的目录信息,打开URL:http://x.x.x.x:28076/file/,发现存在未授权访问漏洞,逐个查看里面的文件,蒙了一下dirFiles.jsp的 参数,使用"path"作为参数名可列出目录、文件信息,URL,同样的方法,发现show.jsp存在任意文件读取漏洞

修复方法:

严格控制文件名参数值,先判断文件名或文件路径是否合法可修复漏洞

标签:shell,函数,命令,代码,exec,漏洞,代码执行,执行
From: https://www.cnblogs.com/xlvbys/p/17588831.html

相关文章

  • Linux&Docker命令集合
    linux查看服务安装目录serverdir#查看服务安装目录whereis[服务名]whereismysql#通过进程号查找目录ps-aux|grep[服务名]ps-aux|grepmysql#查看进程目录ll/proc/[进程号]/cwdlinux查看某个进程所在目录 docker查看文件列表查看docker里面的文件在哪里......
  • idea maven 命令后控制台乱码
    首先在idea中查看maven的编码方式mvn-vMavenhome:D:\apache-maven-3.6.3\bin\..Javaversion:11.0.17,vendor:OracleCorporation,runtime:C:\ProgramFiles\Java\jdk-11.0.17Defaultlocale:zh_CN,platformencoding:GBKOSname:"windows11",version:......
  • 常用命令-nc
    简介:网络工具作用:实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口端口的扫描,nc可以作为client发起TCP或UDP连接机器之间传输文件机器之间网络测速常用参数:-l: 指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址......
  • spool命令使用详解 oracle导出txt文件
    spool命令使用详解原文链接:https://www.xjx100.cn/news/454608.html?action=onClickSPOOL命令使用详解SPOOL是SQLPLUS的命令,必须在SQLPLUS中使用,主要完成以标准输出方式输出SQLPLUS的命令及执行结果,一般常用户格式化导出ORACLE表数据。 对于SPOOL数据的SQL,最好要自己定......
  • 常用命令--lsof
    基本概念:列出系统中已经打开的文件,包括普通文件,目录,块特殊文件,字符特殊文件,正在执行的文本引用,库,流或网络文件(例如:网络套接字,NFS文件或UNIX域套接字)。常用参数:-ppid:指定进程打开的文件-u user:指定用户打开的文件filename:打开文件的所有项-cstring:command列中包......
  • 容器镜像安全漏洞扫描工具Trivy
    概述最近做镜像分析扫描工作,需要扫描镜像的安全漏洞,评估镜像安全性,调研了几款漏洞扫描工具,最后决定使用Trivy工具,Trivy是一家以色列安全公司开源的一个漏洞扫描工具,支持容器镜像、虚机镜像、文件系统的安全扫描。官网地址:https://aquasecurity.github.io/trivy/v0.42/github地址......
  • Apache Shiro 反序列化漏洞(CVE-2016-4437)
    漏洞简介ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。版本信息:ApacheShiro<=1.2.4漏洞名称:ApacheShiro1.2.4反序列化漏洞,即shiro-550反序列化漏洞。漏洞形成原理:1、检索RememberMecookie的......
  • Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
    Redis是一种快速、高效的开源内存数据库,广泛应用于缓存、会话存储和实时数据处理等场景。为了维护数据的有效性和保证内存的合理利用,Redis引入了过期删除策略和内存淘汰策略。本文将深入探讨这两种策略的区别,同时解析与之相关的常用Redis命令,帮助读者更好地理解Redis在数据管理中的......
  • ubuntu 命令调节显示器亮度
    1.显示器名字xrandr-q|grep"connected"HDMI-0connectedprimary1920x1080+0+0(normalleftinvertedrightxaxisyaxis)527mmx297mmDP-4connected1920x1080+1920+0(normalleftinvertedrightxaxisyaxis)527mmx297mm2.调节亮度xrandr--outpu......
  • linux常用内存相关命令总结
    查看某个pid占用物理内存的峰值 cat/proc/pid/status|grep-E"VmHWM|VmRSS"参考信息:(23条消息)Linux下查看某一进程占用的内存_Jeremy_Lee123的博客-CSDN博客 内核内存泄漏常用工具kmemleakKmemleak是Linux内核提供的一个内存泄漏检测工具(内核3.1.5之后得版本支......