(30)【RCE集合】RCE漏洞的原理、出现地方、相关命令、函数解析、利用详细的过程
目录
一、介绍:
二、原理:
三、漏洞出现
3.1、代码执行:
3.1.1、脚本:
3.1.2、产生:
3.2、命令执行:
3.2.1、系统:
3.2.2、产生:
四、命令:
4.1、执行系统命令的函数(PHP中)
4.1.1、system()
4.1.2、passthru()
4.1.3、exec()
4.1.4、shell_exec()
4.1.5、popen()
4.1.6、proc_open()
4.1.7、pcntl_exec()
4.2Windows系统命令拼接
4.2.1、“|”:commandA | commandB
4.2.2、“&” commandA & commandB
4.2.3、“||” commandA || commandB
4.2.4、“&&” commandA && commandB
五、利用过程:
5.1、pikachu(RCE-exec"ping")
5.1.1、 分析:
5.1.2、漏洞利用:
5.2、 pikachu(RCE-exec"evel")
5.2.1、 分析:
5.2.2、漏洞利用:
一、介绍:
利用RCE漏洞,有两种执行方式,向后台服务器远程注入操作系统命令(即远程命令执行RemoteCommand Exec)或者远程代码执行(Remote Code Exec),顾名思义就是远程执行,通过上述的远程注入后,从而执行系统命令,进而控制后台系统。
二、原理:
我在软件工程等课程中都有看到,为满足用户远程执行等功能(如路由器、防火墙、入侵检测等设备的web管理界面上ping操作的web界面),在设计的时候都会设置提供给用户的接口。如果对用户的输入没有做严格的安全控制,这些接口可能会被攻击者利用提交远程执行命令或代码,进一步控制了整个后台系统。
三、漏洞出现
3.1、代码执行:
3.1.1、脚本:
PHP、java、python
3.1.2、产生:
web源码:thinkphp、eyoucms、WordPress
中间件平台:Tomcat、Apache Struts2、Redis
其他环境:PHP-CGI、Jenkins-CI、Java RMI
3.2、命令执行:
3.2.1、系统:
Linux、windows
3.2.2、产生:
web源码:Nexus、Webmin、ElasticSearch
中间件平台:weblogic、Apache
其他环境:postgresql、samba、supervisord
四、命令:
4.1、执行系统命令的函数(PHP中)
4.1.1、system()
执行shell命令,向dos发送一条指令,如system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作;而调用color函数可以改变控制台的前景色和背景。
int system(const char *command)
4.1.2、passthru()
只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上
4.1.3、exec()
在PHP中,执行一个外部程序, exec() 执行 command 参数所指定的命令。
语法: exec(string $command, array &$output = ?, int &$return_var = ?): string
4.1.4、shell_exec()
是PHP中的一个内置函数,用于通过shell执行命令并以字符串的形式返回完整的输出
4.1.5、popen()
通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数关闭,而不是 fclose() 函数。pclose() 函数关闭标准 I/O 流,等待命令执行结束,然后返回 shell 的终止状态。如果 shell 不能被执行,则 pclose() 返回的终止状态与 shell 已执行 exit 一样
语法:
FILE * popen ( const char * command , const char * type );
int pclose ( FILE * stream );
4.1.6、proc_open()
执行一个命令,并且打开用来输入/输出的文件指针
类似 popen() 函数, 但是 proc_open() 提供了更加强大的控制程序执行的能力。
语法:resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )
4.1.7、pcntl_exec()
在当前进程空间执行指定程序
语法:void pcntl_exec ( string $path [, array $args [, array $envs ]] )
4.2Windows系统命令拼接
4.2.1、“|”:commandA | commandB
管道符,A命令的标准输出,作为B命令的标准输入
4.2.2、“&” commandA & commandB
先运行输出命令A,然后运行输出命令B
4.2.3、“||” commandA || commandB
先运行输出命令A,如果失败则运行输出命令B
4.2.4、“&&” commandA && commandB
如果运行输出命令A成功,则继续运行输出命令B
(命令A未执行成功,则命令B不执行)
(迟来的祝愿:愿远方只有快乐,挺帅一小伙子的,和我差不多帅,嘻嘻嘻)
五、利用过程:
5.1、pikachu(RCE-exec"ping")
5.1.1、 分析:
可以看见给用户提供了一个ping操作的web界面
当输入目标网址后,点击提交,服务器后台会对输入的地址进行了ping测试,并返回了测试结果
www.iqiyi.com
www.iqiyi.com|dir
大多数操作系统(包括DOS及Windows)中dir命令基本上会列出目录中的文件及子目录的名称,也可以列出其文件大小,创建时间等相关信息,并且列出所在的磁盘、可用空间等信息。dir命令也可以寻找其文件名称符合特定条件的文件。
Linux中ls 命令显示当前目录的内容
127.0.0.1 & ipconfig
111 & whoamI
得到设备名,以及用户名
5.1.2、漏洞利用:
查看权限
Linux下的话使用 ls -al // a表示全部的包括u,g和o,l表示列出相关信息
windows下 attrib 1.txt // 查看当前目录下1.txt的属性,包括读写操作属性
如果当前目录有写入权限,就写入木马
反之,没有写入权限,再进行反弹测试
如果失败,寻找一个可写入可执行的文件(777),并利用RCE漏洞编写一个bash反弹脚本
再进行监听、并利用RCE漏洞执行脚本
5.2、 pikachu(RCE-exec"evel")
5.2.1、 分析:
要输入普通字符串,没什么大用(尝试试试php函数)
再尝试输入一个php函数,看能不能被执行
phpinfo();
没有对用户的输入做严格的过滤,导致被当做PHP脚本执行了,产生了漏洞
5.2.2、漏洞利用:
查看数据包,可以知道表单的参数是txt
我试的时候,直接复制粘贴过去会报错
连接失败改错
我再尝试把这个URL编码的大写都改为了小写,然后就成功了
(再次查看值的时候自己变了大写)
利用system()函数, 或者shell_exec()函数,再写反弹脚本
也可直接写在服务器上后,在执行命令下载脚本(wegt)
(30)【RCE集合】RCE漏洞的原理、出现地方、相关命令、函数解析、利用详细的过程相关推荐
- xml相关php函数,PHP利用xml常用函数的详细集合示例
这篇文章主要为大家详细介绍了PHP利用xml常用函数的详细集合示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧! 1.DOM 函数 a.DOMDocu ...
- 安全扫描失败无法上传_Apache Solr 未授权上传(RCE)漏洞的原理分析与验证
漏洞简介 Apache Solr 发布公告,旧版本的ConfigSet API 中存在未授权上传漏洞风险,被利用可能导致 RCE (远程代码执行). 受影响的版本: Apache Solr6.6.0 ...
- PHP 绕过禁用函数漏洞的原理与利用分析
聚焦源代码安全,网罗国内外最新资讯! 漏洞简介 PHP 发布公告,旧版本的 php_array_merge_recursive 函数中存在UAF风险,被利用可能导致用来绕过禁用函数. 受影响的版本 ...
- Web安全基础一漏洞产生原理漏洞探测(持续更新)
提要:Web网站中为什么会出现大大小小的漏洞,漏洞产生的机制主要是什么呢? 漏洞产生原理: 1,变量可控的参数 不管是Sql注入,XSS,文件上传漏洞还是其他大多数的Web安全漏洞,其形成漏洞最核心的 ...
- 文件包含漏洞(原理及介绍)
文件包含漏洞(原理及介绍) File inclusion,文件包含(漏洞).程序开发人员通常出于灵活性的考虑,会将被包含的文件设置成变量,然后动态调用这些文件.但正是因为调用的灵活性导致用户可能调用一 ...
- 详解ShellShock 漏洞复现原理,内附ShellShock的修复方法
本篇文章适合初学ShellShock漏洞阅读,如果您已经学习过ShellShock漏洞,可以直接略过.本篇是我们悬镜安全实验室成员之一Kr0iNg's 在学习ShellShock时分享的一点心得,仅供 ...
- 【安全牛学习笔记】反射型XSS***漏洞的原理及解决办法
发射型XSS 漏洞的原理及修复方法 1.常见的触发场景 2.漏洞原理 3.漏洞危害 4.一些tips 5.如何避免&修复漏洞 直接将用户数据输出到浏览器,没有做安全处理 搜索: www-dat ...
- 漏洞扫描原理及X-Scan使用
漏洞扫描原理及X-Scan使用 漏洞扫描技术的原理是通过远程检测目标主机TCP/IP不同端口的服务,记录目标的回答.通过这种方法,可以搜集到很多目标主机的各种信息.在获得目标主机TCP/IP端口和其对 ...
- C/C++典型漏洞产生原理与Demo
本篇主要是自己学习笔记,快速读了下泉哥的<漏洞战争>的读书笔记.这里只涉及漏洞产生原理,即漏洞是怎么写出来.至于怎么分析0Day,怎么写代码执行的exp,后续将做深入研究. C/C++的代 ...
最新文章
- mysql get_mysql GET DIAGNOSTICS 语法
- Matlab读取点云数据显示
- [JS 分析] 汽_车_之_家 JS 生成 CSS 伪元素 hs_kw44_configUS::before
- 协议森林01 邮差与邮局 (网络协议概观)
- linux unshare 命令,详解Linux Namespace之User
- Unity Shader 屏幕后效果——Bloom外发光
- 专为人工智能和数据科学而生的Go语言,或将取代Python
- html背景视频模糊效果,怎么给竖屏视频添加模糊背景效果?
- SpringBoot+Nacos+Seata实现Dubbo分布式事务管理
- Excel Access 新建空白文档/打开已有文档 提示内存或磁盘空间不足的解决方法--验证...
- paip.提升安全性-------用户口令密码的检测与生成
- 中国省市区乡县名称代码对照表
- 实现lightbox效果
- 2021-01-01 中国公务员级别
- 基于JavaWeb的C2C网上购物平台系统设计
- android wear2.0 更新,又一批手表获得Android Wear 2.0更新
- Kali历史版本下载地址
- RFQ 、IFB、RFP 、RFI的区别是什么
- 关于 kubernetes网络(CNI规范)中Calico,NetworkPolicy(网络策略)方面的一些笔记
- 第五章 大数定律及中心极限定律
热门文章
- NAPI(New API)的一些浅见
- 更换matlab版本需要注意事项,AMD 篇四:更换Matlab调用MKL库版本
- 3种侧链压缩方法让音乐鼓点更有力—FL Studio教程
- 光学分频器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 信号完整性(SI)电源完整性(PI)学习笔记(三十四)100条估计信号完整性效应的经验法则
- 2018十大最热门编程语言排行榜出炉,Java竟不是第一!
- 题解:女神间的 BOYI # 博弈论 # surreal number
- Kali Linux 2020.1安装教程
- php中级面试题汇总
- SQL - 连接表(多表查询)