L003001002HTTP攻击与防范命令注入攻击.docx
《L003001002HTTP攻击与防范命令注入攻击.docx》由会员分享,可在线阅读,更多相关《L003001002HTTP攻击与防范命令注入攻击.docx(10页珍藏版)》请在冰豆网上搜索。
L003001002HTTP攻击与防范命令注入攻击
课程编写
类别
内容
实验课题名称
CommandInjection命令注入攻击
实验目的与要求
1.了解命令注入攻击攻击带来的危险性。
2.掌握命令注入攻击攻击的原理与方法
3.掌握防范攻击的方法
实验环境
VPC1(虚拟PC)
Windowsserver2003
VPC1连接要求
PC网络接口,本地连接与实验网络直连
软件描述
1、学生机要求安装java环境
2、vpc安装windwos系统
实验环境描述
1、学生机与实验室网络直连;
2、VPC1与实验室网络直连;
3、学生机与VPC1物理链路连通;
预备知识
在PHP中您可以使用下列5个函数来执行外部的应用程序或函数。
(1)system:
执行一个外部的应用程序并显示输出的结果。
(2)exec:
执行一个外部的应用程序。
(3)passthru:
执行一个UNIX系统命令并显示原始的输出。
(4)shell_exec:
执行shell命令并返回输出的字符串。
(5)"``"运算符:
与shell_exec函数的功能相同。
正常情况下,PHP的命令执行函数system、exec、passthru、shell_exec与“``”
运算符会执行外部的应用程序或命令,然后显示输出的结果。
但是黑客可以在这些函数的参数内输入可执行外部应用程序或系统命令来执行攻击,这就是命令注入(CommandInjection)攻击。
许多Web应用程序会执行外部命令,来辅助应用程序本身的功能。
但是却没有仔细地验证所执行的是否是真正想要的命令,因此给黑客以可乘之机来执行任何指令。
实验内容
1.了解命令注入攻击攻击攻击带来的危险性。
2.掌握命令注入攻击攻击攻击的原理与方法
3.掌握防范攻击的方法
实验步骤
1、学生单击实验拓扑按钮,进入实验场景,进入目标主机,(第一次启动目标主机,还需要安装java控件),如图所示:
2.打开虚拟机,输入用户名和密码,用户为Adminsitrator密码为123456
3.打开浏览器,输入http:
//localhost:
8080/example_code/如图:
4、点击上图中的
(1)命令注入攻击(CommandInjection)后,结果如下图所示:
5、攻防实例一
可以查看在c:
\xampp\htdocs\example_code\source\code1\ex1-1.php中使用的是system函数执行windows系统dir命令,来显示URL参数dir所指定的子目录的内容。
当点击演示1时,出现下图显示:
6、黑客可以使用下列的URI来进行命令注入攻击:
ex1-5.php?
dir=.\&ping127.0.0.1
直接在浏览器中输入http:
//localhost:
8080/example_code/source/code1/ex1-5.php?
dir=.\&ping127.0.0.1,结果显示如下:
7、可以使用escapeshellarg函数来处理命令的参数,防止URI来进行命令注入攻击
点击防护5,如图:
8、攻防实例二:
返回如图界面:
9、可以查看c:
\xampp\htdocs\example_code\source\code1\ex1-6.php文件,使用exec函数执行windows系统命令dir,来显示URL参数dir所指定的子目录的内容。
点击演示二,结果如下图所示:
10、黑客可以使用下列的URI来进行命令注入攻击:
dir=.%5c%26ping%20127.0.0.1,
点击攻击5,结果如下图所示:
11、攻击实例三
在c:
\xampp\htdocs\example_code\source\code1\ex1-7.php中,使用的是passthru函数执行windows系统命令,读取URL参数username所指定的来访者账号,并显示来访者的登录日志的内容。
在浏览器中输入http:
//localhost:
8080/example_code/source/code/ex1-7.php后,显示结果如下图:
12、可以使用下列的URI来进行命令注入攻击:
ex1-7.php?
username=tom%26ping%20127.0.0.1,
当你点击攻击7时,有如下效果:
13、可以使用escapeshellarg函数来处理命令的参数,防止URI来进行命令注入攻击
点击防护7,如图:
14、实验完毕,关闭虚拟机和所有窗口。