注入
注入漏洞说明:应用程序将用户可控制的输入解析为实际命令或参数。注入攻击取决所使用的技术及这些技术对输入的解析。常见的实例包括:
- SQL注入:将用户控制的输入传递给SQL查询时。攻击者可以传入SQL查询来操作此类查询的结果。当输入的恶意SQL语句传递到数据库查询中时。可以查询,修改,删除数据库中的信息。
- 命令注入:当用户输入传递给系统命令时。攻击者能够在应用程序服务器上执行任意系统命令。在服务器上执行任意系统命令,使攻击者可以访问用户系统,执行任意操作。
SQL注入内容太多,我有空整理后另起篇幅介绍。先介绍命令注入。
操作系统命令注入:
当Web应用程序在服务端的代码(例如PHP)在主机上进行系统调用使,就会发生命令注入。攻击者可以利用该漏洞发出的系统调用在服务器上执行操作系统命令。命令注入的问题使它为攻击者提供了许多选择。比如生成一个反向Shell。一个简单的nc -e /bin/bash就能完成。当然有些些netcat使不支持-e选项的。但是还有更多反向Shell的方法!参考链接: https://blog.csdn.net/qq_44101248/article/details/107520835
PHP执行系统外部命令函数:exec(),passthur(),system(),shell_exe(),等。
有些命令执行没有返回结果,或只有一行。请自行查询PHP手册
示例代码:
<?php
if(isset($_GET["commandString"])) { //isset判断是否有传入GET提交参数
$command_string = $_GET["commandString"];
try{
passthur($command_string); //passthur执行传入参数
}catch(Error $error){
echo "<p class=mt-3><b>$error</b></p>";
}
}
?>
命令执行实例