RCE代码及命令执行漏洞
RCE(remote code/command execute) 远程代码/命令执行漏洞
如何产生:在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。
RCE漏洞危害
1、执行系统命令(Windows:DOS命令、linux)
2、执行脚本代码(php、java、python)
相关函数
RCE 漏洞产生相关性函数
PHP eval()函数
作用:把字符串按照PHP代码来计算
PHP system()函数
作用:执行外部程序,并显示输出
外部程序:操作系统与环境
执行的代码以系统的命令为主
?id=1
漏洞形成条件:可控变量、漏洞函数
可控变量:基本上是网址上的传参,就是传递参数值来达到改变变量值
漏洞函数:使用哪个函数对变量进行操作
漏洞检测
白盒测试:代码审计
黑盒测试:
1、漏洞工具–OpenVAS、Nessus等
2、公开漏洞–寻找类似目标网站的公开漏洞
3、手工看参数值及功能点–判定参数值的数据是否和代码相关
相关防御
1、变量过滤或固定
2、禁用敏感函数
3、WAF产品防护
实验
1、墨者靶场黑盒测试功能点命令执行-命令注入执行分析
2、墨者靶场白盒代码及命令执行-PHP代码分析溯源-代码分析
echo $_REQUEST[a]
反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量,linux特有
3、墨者靶场黑盒层 RCE 漏洞检测-公开漏洞
当前目录、根目录
4、一句话 Webshell 后门原理代码执行-拓展说明-中国菜刀、冰蝎、蚁剑
@表示不回显错误结果
涉及资源
https://www.cnblogs.com/-qing-/p/10819069.html RCE漏洞函数
https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe 命令注入执行分析
https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe PHP代码分析溯源
https://www.mozhe.cn/bug/detail/d01lL2RSbGEwZUNTeThVZ0xDdXl0Zz09bW96aGUmozhe Webmin未经身份验证的远程代码执行