文件上传注入攻击 ——合天网安实验室学习笔记
实验链接
本实验主要介绍了文件上传的基本方法,通过本实验的学习,培养学生独立思考能力。
链接:http://www.hetianlab.com/expc.do?ce=70acbe22-3d18-4c1e-b848-dee5327a9877
实验简介
实验所属系列:Web应用安全
实验对象: 本科/专科信息安全专业
相关课程及专业:信息网络安全概论
实验类别:实践实验类
实验目的
通过本实验了解文件上传注入攻击过程。
预备知识
本实验要求实验者具备如下的相关知识:
系统管理员都有过系统被上传后门、木马或者是网页被人篡改的经历,这类攻击大部分是通过文件上传来是实现的。文件上传漏洞是指网络攻击者上传了一个可执行文件到服务器并执行。这里上传的文件可以是木马、病毒、恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。
WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,作为网页后门,攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,获得命令执行环境,以达到控制网站服务器的目的(包括上传下载或者修改文件、操作数据库、执行任意命令等)。
文件上传漏洞原理:大部分的网站和应用系统都有上传功能,如用户头像上传、图片上传、文档上传等。一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过Web访问的目录上传任意PHP文件,并能够将这些文件传递给PHP解释器,就可以在远程服务器上执行任意PHP脚本。当系统存在文件上传漏洞时攻击者可以将病毒、木马、WebShell以及其他恶意脚本或者是包含了脚本的图片上传到服务器,这些文件将对攻击者后续攻击提供便利。根据具体漏洞的差异,此处上传的脚本可以是正常后缀的PHP、ASP以及JSP脚本,也可以是篡改后缀后的这几类脚本。
说明:上传的文件内容形式如下,能够解析成php并成功上传文件。
<?phpphpinfo(); //此处可替换为其他php语言?>
实验环境
本实验构建浏览器/服务器环境,由两台主机组成,一台作为服务器,另一台作为用户客户端
利用浏览器访问服务器提供的web服务,服务器配置:apache+php+Mysql
打开实验网址(http://10.1.1.11:81),可以看到实验练习系统
实验步骤
步骤一
新建1.php文件:
打开链接,找到文件上传处:
选择实例1,上传1.php,文件上传成功:
服务器解析成功:
选择实例2,上传1.php,文件上传失败:
提示应上传PHP文件,修改1.php文件名为2.PHP:
此时2.PHP上传成功:
服务器解析成功:
选择实例3,分别上传1.php 、2.PHP ,均失败:
提示不可以上传php文件,此时修改1.php为3.jpg:
选择上传时需使用burp修改文件格式。
burpsuite不会使用的同学可参考我上一篇笔记:burp暴力破解
找到burp文件:
打开网页,选择3.jpg:
打开burp抓包:
修改此处的文件类型为php:
若content-type处不是图片格式也需要做修改
修改成功后发送:
返回网页查看结果,文件上传成功:
服务器解析成功:
文件上传成功。
步骤二
服务器端程序获取上传文件名保存到相应位置
basename() 函数返回路径中的文件名部分。
move_uploaded_file() 函数将上传的文件移动到新位置,若成功,则返回 true,否则返回 false。根据服务器端代码的提示,上传php文件。关键代码如下:
关键代码:
步骤三
利用文件解析漏洞上传php文件
服务器端代码过滤文件后缀为“.php”的文件类型,如果上传文件包含“.php”,则程序输出不允许上传错误提示并退出。
preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用 preg_match_all() 函数。关键代码如下:
关键代码:
答题
文件上传注入攻击 ——合天网安实验室学习笔记相关推荐
- BurpSuite实战——合天网安实验室学习笔记
burpsuite是一款功能强大的用于攻击web应用程序的集成平台,通常在服务器和客户端之间充当一个双向代理,用于截获通信过程中的数据包,对于截获到的包可以人为的进行修改和重放. 此BurpSuite ...
- 绕过黑名单检查实现文件上传1 ——合天网安实验室学习笔记
实验链接 文件上传指将客户端数据以文件形式封装,通过网络协议发送到服务器端.在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存.了解文件上传漏洞产生的原因,掌握漏洞的利用方法. 链接:http: ...
- CSRF攻击实验 ——合天网安实验室学习笔记
实验链接 本实验以PHP和Mysql为环境,展示了CSRF攻击的原理和攻击过程.通过实验结果结合对攻击代码的分析,可更直观清晰地认识到Web安全里这种常见的攻击方式. 链接:http://www.he ...
- 使用burp进行暴力破解 ——合天网安实验室学习笔记
实验链接 通过该实验掌握burp的配置方法和相关模块的使用方法,对一个虚拟网站使用burp进行暴力破解来使网站建设者从攻击者的角度去分析和避免问题,以此加强网站安全. 链接:http://www.he ...
- 摩尔斯电码和栅栏密码 ——合天网安实验室学习笔记
实验链接 通过学习本实验理解摩尔斯电码和栅栏密码的编码解码过程:掌握编写摩尔斯电码的编码解码程序和编写多功能栅栏密码的编码解码程序. 链接:http://www.hetianlab.com/expc. ...
- java上传文件限制大小_Java Web:附件上传,两种文件上传限制格式及大小方法,学习笔记文件操作【诗书画唱】...
附件上传: package com.jy.controller; import java.io.File; import java.io.FileOutputStream; import java.i ...
- 合天网安就业班_CTF挑战赛-合天网安实验室
[TOCCTF挑战赛-合天网安实验室逆向解析] CTF挑战赛-合天网安实验室sourl.cn 1.逆向100 修改后缀为.apk 安卓模拟器打开,发现要求输入Password 用Android逆向助 ...
- 合天网安实验室CTF-基础50-0x01
合天网安实验室CTF-基础50-0x01 最近无聊时准备刷点题,由简到难慢慢来吧 题目描述 真的不能再简单了! 相关附件 misc50.zip 题目链接 参考解题步骤 1.下载下来的压缩包解压 ...
- 合天网安实验室CTF-Web100-Give Me Flag
合天网安实验室CTF-Web100-Give Me Flag 题目描述 哎,不小心把代码弄乱惹 相关附件 web100.zip 题目链接 参考解题步骤 1.下载附件打开后是一段JavaScri ...
- 合天网安实验室CTF-Exp200-Come on,Exploit me!
合天网安实验室CTF-Exp200-Come on,Exploit me! 题目描述 Audrey Tang. ⊙.⊙ 我只能说到这儿了 相关附件 exp200 题目链接 参考解题步骤 1.下 ...
最新文章
- Android UI Button 和GridView 的设计--优化(2)
- 独家 | 使用Python实现机器学习特征选择的4种方法(附代码)
- 坐标架内转换到坐标架外的公式
- 您的请求参数与订单信息不一致_长春各学校信息审核结果出炉!这些情况不符合“两个一致”...
- 关于数据库SQL优化
- Linux json格式化输出
- nodeJs的学习之路(1)
- 数字图像处理-7频域滤波
- HTML5+CSS:左边导航栏,右边是对应的文本区域
- 敏捷开发系列学习总结(12)——给Scrum Master的十个建议,你值得拥有
- centos sftp客户端 c 源码_Redis第3课:如何使用 Redis客户端
- [转]SQL2000修改表创建日期
- 怎么判断自己启动的线程是否执行完成 java_Java面试笔记(上)
- python可以500x1000_Python练习题 一. 使用匿名函数对1~1000求和,代码力求简洁。...
- 17-05-25模拟赛
- 孤儿进程/僵尸进程/守护进程
- 智能家居linux 源码,搭建开源智能家居系统Domoticz
- html粘性菜单,导航菜单:jQuery粘性滚动导航栏效果
- SpringBoot 接口数据加解密技巧
- 简单爬虫,爬取天猫商品信息