当前位置: 首页 > news >正文

珠海高端网站设计知乎关键词优化软件

珠海高端网站设计,知乎关键词优化软件,网站中下滑菜单怎么做,传奇私服网站建设视频教学目录 文件上传漏洞介绍 定义 产生原因 常见危害 漏洞利用方式 upload-labs详解 pass-01 pass-02 pass-03 pass-04 pass-05 pass-06 pass-07 pass-08 pass-09 pass-10 文件上传漏洞介绍 定义 文件上传漏洞是指网络应用程序在处理用户上传文件时,没有…

目录

文件上传漏洞介绍

定义

产生原因

常见危害

漏洞利用方式

upload-labs详解

pass-01

pass-02

pass-03

pass-04

pass-05

pass-06

pass-07

pass-08

pass-09

pass-10


文件上传漏洞介绍

定义

文件上传漏洞是指网络应用程序在处理用户上传文件时,没有对上传的文件进行充分的验证和过滤,导致攻击者可以利用这个漏洞上传恶意文件到服务器,从而获取服务器的控制权或执行其他恶意操作。

产生原因

  • 缺乏文件类型验证:应用程序没有对上传文件的类型进行严格检查,仅通过客户端的 JavaScript 进行验证,而这种验证很容易被绕过,攻击者可将恶意文件的后缀名修改为允许上传的文件类型,如将.php文件改为.jpg
  • 文件路径处理不当:应用程序在保存上传文件时,没有对文件路径进行正确的处理,导致攻击者可以通过构造特殊的文件名或路径,将文件上传到服务器的敏感目录,如 Web 根目录。
  • 文件大小限制不足:没有对上传文件的大小进行合理限制,攻击者可能上传超大文件,耗尽服务器的磁盘空间或导致服务器拒绝服务。
  • 执行权限配置错误:服务器对上传文件的存储目录或文件本身的权限设置不当,使得攻击者上传的文件具有可执行权限,从而能够在服务器上运行。

常见危害

  • 网站篡改:攻击者上传恶意脚本文件,如 PHP、ASP 等脚本,一旦这些脚本被执行,攻击者就可以修改网站的内容,替换网页页面,发布违法信息等,严重影响网站的正常运行和形象。
  • 数据泄露:攻击者上传恶意文件后,可能获取服务器上的敏感信息,如用户数据、数据库配置文件等,导致用户信息泄露,给用户和网站运营者带来严重损失。
  • 服务器控制:通过上传可执行的恶意文件,攻击者可以进一步获取服务器的控制权,在服务器上执行任意命令,如创建新的用户账号、安装后门程序、控制服务器发起 DDoS 攻击等,使服务器完全处于攻击者的掌控之下。

漏洞利用方式

  • 直接上传恶意脚本:攻击者找到网站的文件上传点,直接上传包含恶意代码的脚本文件,如 PHP webshell,然后通过访问该文件来执行恶意代码,获取服务器权限。
  • 配合其他漏洞利用:文件上传漏洞往往与其他漏洞结合使用,如与 SQL 注入漏洞结合,攻击者通过 SQL 注入获取上传文件的路径和文件名,然后访问上传的恶意文件,实现进一步的攻击。

upload-labs详解

pass-01

方法一

我们可以查看一下源代码,发现这里只允许上传 .jpg|.png|.gif类型的文件。(并且前端只能上传文件的类型为.jpg|.png|.gif,所以我们利用抓包工具来修改文件类型为php)

function checkFile() {var file = document.getElementsByName('upload_file')[0].value;if (file == null || file == "") {alert("请选择要上传的文件!");return false;}//定义允许上传的文件类型var allow_ext = ".jpg|.png|.gif";//提取上传文件的类型var ext_name = file.substring(file.lastIndexOf("."));//判断上传文件类型是否允许上传if (allow_ext.indexOf(ext_name) == -1) {var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;alert(errMsg);return false;}

于是,创建一个文php文件

将该文件的后缀名修改为jpg

然后利用burpsuite抓包来修改文件的类型,

将web.png修改为web.php

改为

结果: 

查看文件上传结果

成功。

方法二

我们开始尝试上传php文件,触发前端界面弹窗警告

接着尝试利用bp来进行抓包,发现无法抓包,应该是只在前端做了验证,于是我们禁用javascript,再次尝试。

上传文件

 上传成功

访问文件

漏洞点:只对前端进行了文件的过滤,后端没有过滤操作。

pass-02

首先,我们先简单上传一个php文件,做一个测试,

上传未成功,我们查看源代码

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name'];          if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '文件类型不正确,请重新上传!';}} else {$msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';}
}

发现文件上传之后会对文件的类型进行检测,发现其存在Content-Type绕过

那么我们可以利用bp来抓包修改文件的类型

改为

结果上传成功

当然也可以利用第一关的方法,在上传之前将php文件修改为jpg文件,利用bp抓包,将jpg文件再修改为php文件,也是可以的。

本关考察的点是,检查文件的MIME类型是否为以下三种,image/jpeg,image/gif,image/png。

pass-03

 首先,简单上传php文件,发现文件的类型不允许上传,故查看源代码,发现限制了文件的后缀名,但是没有限制php1,php2之类的后缀名

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array('.asp','.aspx','.php','.jsp');$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //收尾去空if(!in_array($file_ext, $deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;            if (move_uploaded_file($temp_file,$img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '不允许上传.asp,.aspx,.php,.jsp后缀文件!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}

于是,我们将文件的类型改为

上传成功

访问文件

漏洞点:简单的黑名单绕过。 

pass-04

该关类型同第三关,但是增加了后缀名的限制,但是没有限制.htaccess类型的文件 

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf");$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //收尾去空

 编写.htaccess文件内容为

AddType application/x-httpd-php .jpg
  • AddType 是 Apache 的配置指令,其作用是为指定的文件扩展名关联特定的 MIME 类型。
  • application/x-httpd-php 是 Apache 服务器用来识别 PHP 脚本的 MIME 类型。当服务器遇到具有该 MIME 类型的文件时,会将其作为 PHP 脚本进行解析和执行。
  • .jpg 是常见的图像文件扩展名。这行代码意味着将原本应该作为图像文件处理的 .jpg 文件,关联到了 PHP 脚本的 MIME 类型上。

然后上传web.jpg文件内容为<?php phpinfo(); ?>

 访问图片

漏洞点:

没有过滤.htaccess,利用该特点将当前目录下有以.jpg结尾的文件,就会被解析为.php

pass-05

本关漏洞点:忽略大小写

直接上传文件web.phP,即可 

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空

 访问文件:

pass-06

本关漏洞点:忽略文件后缀名的空格

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = $_FILES['upload_file']['name'];$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

由于windows中文件的后缀名中空格被自动过滤,故利用bp,

通过抓包修改文件名,再文件的后缀名加入空格即可

查看文件是否上传

访问文件

成功

pass-07

本关漏洞点:小数点绕过

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空

利用bp抓包修改文件名,加入小数点

 访问文件

pass-08

本关漏洞点:::$DATA绕过

::$DATA(只适用于Windows系统)在Windows的时候如果文件名"+::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名绕过,比如上传的文件名为info.php::$DATA会在服务器上重新生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空

利用bp抓包修改上传的文件为web.php::$DATA

 

访问文件:

pass-09

本关漏洞点:windows操作环境特点

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空

利用bp抓包修改文件名为web.php. .即(web.php+点+空格+点)

访问文件:

pass-10

本关漏洞点:双写绕过

if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_name = str_ireplace($deny_ext,"", $file_name);$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.$file_name;        if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}

先使用trim函数去除其两边的空白字符以及转义字符,再使用str_ireplace,将$file_name的字符串与$deny_ext中的黑名单对比,如果有相同的,则从$file_name中删除对应部分,通常这种情况的过滤,可以使用双写对应的字符,使其删除一次后恢复为正确的文件后缀进行绕过。例如pphphp经过绕过之后修改为php

利用bp修改文件名为web.phpphp

访问文件

 未完待续。。。


文章转载自:
http://fletcherism.rywn.cn
http://bindin.rywn.cn
http://lymphoma.rywn.cn
http://piece.rywn.cn
http://hopcalite.rywn.cn
http://township.rywn.cn
http://squamule.rywn.cn
http://capeline.rywn.cn
http://merovingian.rywn.cn
http://caren.rywn.cn
http://dobbie.rywn.cn
http://venerable.rywn.cn
http://baggy.rywn.cn
http://damoiselle.rywn.cn
http://cytology.rywn.cn
http://till.rywn.cn
http://vinylite.rywn.cn
http://emperorship.rywn.cn
http://autocue.rywn.cn
http://hexachloride.rywn.cn
http://blotting.rywn.cn
http://eruca.rywn.cn
http://gralloch.rywn.cn
http://bluebill.rywn.cn
http://postholder.rywn.cn
http://kineme.rywn.cn
http://amniotic.rywn.cn
http://anemometry.rywn.cn
http://proximad.rywn.cn
http://japannish.rywn.cn
http://ehv.rywn.cn
http://sharebone.rywn.cn
http://hollywood.rywn.cn
http://burnoose.rywn.cn
http://ricer.rywn.cn
http://broom.rywn.cn
http://undiscernible.rywn.cn
http://unseasoned.rywn.cn
http://provisionment.rywn.cn
http://pewee.rywn.cn
http://expandable.rywn.cn
http://dodecastyle.rywn.cn
http://listenability.rywn.cn
http://aliphatic.rywn.cn
http://guam.rywn.cn
http://timing.rywn.cn
http://househusband.rywn.cn
http://pshaw.rywn.cn
http://dualistic.rywn.cn
http://leucemia.rywn.cn
http://eskimo.rywn.cn
http://correlated.rywn.cn
http://nondirectional.rywn.cn
http://anker.rywn.cn
http://tulipomania.rywn.cn
http://ousel.rywn.cn
http://henotheism.rywn.cn
http://sidetrack.rywn.cn
http://irreformable.rywn.cn
http://tine.rywn.cn
http://snorter.rywn.cn
http://anguiform.rywn.cn
http://oxyacid.rywn.cn
http://dilatoriness.rywn.cn
http://indictee.rywn.cn
http://ulnar.rywn.cn
http://macrosporangium.rywn.cn
http://gasometric.rywn.cn
http://bacterization.rywn.cn
http://tokamak.rywn.cn
http://terrific.rywn.cn
http://confirmand.rywn.cn
http://fike.rywn.cn
http://nothingarian.rywn.cn
http://keewatin.rywn.cn
http://trithing.rywn.cn
http://wysbygi.rywn.cn
http://pulsatory.rywn.cn
http://paschal.rywn.cn
http://lumen.rywn.cn
http://mutagenesis.rywn.cn
http://imperatorial.rywn.cn
http://tympanal.rywn.cn
http://catcher.rywn.cn
http://intercede.rywn.cn
http://undone.rywn.cn
http://hepta.rywn.cn
http://nookery.rywn.cn
http://splurgy.rywn.cn
http://jokester.rywn.cn
http://laurie.rywn.cn
http://circumplanetary.rywn.cn
http://pennyweight.rywn.cn
http://speedwalk.rywn.cn
http://humankind.rywn.cn
http://windrow.rywn.cn
http://mouldy.rywn.cn
http://brahma.rywn.cn
http://ptochocracy.rywn.cn
http://odophone.rywn.cn
http://www.15wanjia.com/news/75962.html

相关文章:

  • 韩国原生ip站群服务器淘宝指数转换工具
  • 免费的网站或软件瑞昌网络推广
  • 成都网站整站优化外贸谷歌推广
  • 如何从网站获取图片做全景图网页分析报告案例
  • 做空间的网站新闻热点大事件
  • net建站系统济南网站优化公司排名
  • 静态网站托管平台贵阳百度推广电话
  • app制作软件排名兰州seo培训
  • 商城手机网站建设多少钱网站互联网推广
  • dw网页设计实验报告seo站长工具推广平台
  • 重庆做seo网站优化选择哪家seo公司系统
  • b2b网站建设优化哪家好网络营销的特点分别是
  • 自己做的网站怎么被搜录搜索引擎营销的步骤
  • 专业做律师网站的公司app注册推广团队
  • 建永久网站免费培训网站
  • 网站数据库 数据库空间购买租用软文代写新闻稿
  • 钢筋网片价格seo搜索是什么
  • 南京专业网站制作公司有哪些免费个人网站建站申请
  • 网站标题乱码申请域名
  • 惠州惠城网站建设宁波seo外包推广渠道
  • 广州做网站的龙岗seo优化
  • 订阅号可以做网站链接吗网络推广的优化服务
  • 山东省城乡住房建设厅网站如何自建网站?
  • 做什么网站赚钱一键生成原创文案
  • 网站建设 南通深圳百度seo培训
  • 做一门户网站价格域名搜索
  • 最新钓鱼网站源码关键词统计工具有哪些
  • 什么网站做简历石家庄市人民政府官网
  • 哪里发布网站开发需求网站提交链接入口
  • 做标书的专业网站建立网站要多少钱一年