[渗透笔记][远程代码执行] 远程代码执行漏洞

远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

代码执行漏洞和命令执行漏洞。
二者区别是代码执行漏洞执行和操作系统命令是通过脚本来执行,而命令执行漏洞是直接调用操作系统命令。但是本人觉得这个概念好像不是很重要,反正都是代码。


示例1
比如说在网站后台有这样一段php代码在lab.php中


eval($_GET['payload']);
?>

可以构造paload:url/lab.php?payload=phpinfo();
就可以获得php的配置信息。

示例2
再比如某些网页中输入url,会在后台执行ping命令的输入框,可以利用命令连接执行来利用漏洞。
例构造任意ip && net user 就可以在ping命令执行后再执行new user命令

windows或linux下shell执行顺序:
command1 && command2 先执行command1后执行command2
command1 | command2 只执行command2
command1 & command2 先执行command2后执行command1


php中常见与系统有关的函数
system() 执行一个外部应用程序的输入并显示输出结果
exec() 执行一个外部的应用程序,但不显示输出的结果
shell_exec() 执行shell命令并返回输出的结果字符串
passthru() 执行一个系统命令并显示原始的输出

示例
1、获取目标机器的网络信息
url/lab.php?payload=system(“ipconfig”);
2、在靶机上新建一个用户
url/lab.php?payload=system(“net user hack 123 /add”);


所以为了安全起见,在自己搭建的网站中,尽量不使用eval()函数
尽量不要使用系统执行命令,因为有可能被利用命令连接
在执行命令或方法前要做好过滤工作

你可能感兴趣的:(渗透笔记)