一、实验目的
1.通过本实验了解文件上传注入攻击过程。
二、实验环境
本实验构建浏览器/服务器环境,由两台主机组成,一台作为服务器,另一台作为用户客户端
利用浏览器访问服务器提供的web服务,服务器配置:apache+php+Mysql
三、实验内容与实验要求
实验步骤一
服务器端程序获取上传文件名保存到相应位置
basename() 函数返回路径中的文件名部分。
move_uploaded_file() 函数将上传的文件移动到新位置,若成功,则返回 true,否则返回 false。根据服务器端代码的提示,上传php文件。关键代码如下:
关键代码:
实验步骤二
利用文件解析漏洞上传php文件
服务器端代码过滤文件后缀为“.php”的文件类型,如果上传文件包含“.php”,则程序输出不允许上传错误提示并退出。
preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用 preg_match_all() 函数。关键代码如下:
关键代码:
四、实验过程与分析
实验步骤一
实验步骤二
五、实验结果总结
通过实验学习到文件上传注入攻击过程以及文件上传漏洞原理等等,刚开始进入时经常出错,访问页面不显示,后来通过和同学交流才得以解决。