当前位置: 首页 > 原创新闻 > Web渗透实战:PHP命令注入攻击

Web渗透实战:PHP命令注入攻击

发表于:2021-01-06 11:06 作者: mtr 阅读数(1995人)

本实验主要介绍了Command-Injection实验,通过本实验的学习,你能够深入理解命令行注入工作原理,建立独立思考问题的能力。

实验地址:https://www.hetianlab.com/expc.do?ec=2cf0139a-9d8a-4e91-96aa-f3fbec33205e

实验简介

实验所属系列:WEB应用安全

实验对象: 本科/专科信息安全专业

相关课程及专业:信息网络安全概论

实验类别:实践实验类

 

实验目的

通过本实验了解PHP命令注入攻击过程。

 

预备知识

命令注入攻击(Command Injection),是指黑客通过利用HTML代码输入机制缺陷(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。从而可以使用系统命令操作,实现使用远程数据来构造要执行的命令的操作。

PHP中可以使用下列四个函数来执行外部的应用程序或函数:systemexecpassthrushell_exec,四个函数的原型如下:

string system(string command, int &return_var)

command 要执行的命令; return_var 存放执行命令的执行后的状态值。

string exec (string command, array &output, int &return_var)

command 要执行的命令,output 获得执行命令输出的每一行字符串,return_var 存放执行命令后的状态值。

void passthru (string command, int &return_var)

 command 要执行的命令,return_var 存放执行命令后的状态值。

string shell_exec (string command)

command 要执行的命令,如下例所示,表示通过提交http://www.sectop.com/ex1.php?dir=| cat /etc/passwd操作,执行命令变成了system("ls -al | cat /etc/passwd"),输出/etc/passwd 文件的具体内容。

 //ex1.php

<?php

$dir = $_GET["dir"];

if (isset($dir))

{

     echo "";

      system("ls -al ".$dir);

echo "";

      }

      ?>

 

实验环境

本实验构建浏览器/服务器环境;

由两台主机组成,一台作为服务器,另一台作为用户客户端,利用浏览器访问服务器提供的web服务

服务器配置:apache+php+Mysql

打开实验网址(http://10.1.1.11:81),作为本实验练习系统的网址。