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

企业准备做网站的准备工作哪家网络推广好

企业准备做网站的准备工作,哪家网络推广好,如何网站增加域名,网站制作制作公司目录 一、exif_imagetype 二、开启exif模块 1、phpstudy设置勾选php_exif模块 2、php.ini文件配置开启php_exif模块 三、源码分析 四、图片马 1、图片马概念 2、图片马制作 五、渗透实战 1、上传图片马 2、利用文件包含访问图片马 (1)jpg …

目录

一、exif_imagetype

二、开启exif模块

1、phpstudy设置勾选php_exif模块

2、php.ini文件配置开启php_exif模块 

三、源码分析

四、图片马

1、图片马概念

2、图片马制作

五、渗透实战

1、上传图片马

2、利用文件包含访问图片马

(1)jpg

(2)gif

(3)png


本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗透实战,本文讲解upload-labs靶场第16关图片马之exif_imagetype绕过渗透实战。

一、exif_imagetype

exif_imagetype 是 PHP 中的一个内置函数,其用途是判断图像文件的类型。它会读取文件的开头部分,以此识别文件对应的图像类型,并返回一个表示该图像类型的常量。exif_imagetype 原理是通过读取图像文件开头特定字节,这些字节构成文件签名。函数将读取到的签名与预设的各图像格式签名比对,如 JPEG、PNG 等。若匹配到某个格式签名,就返回对应表示图像类型的常量,若未匹配则返回 false。具体语法如下所示。

exif_imagetype ( string $filename ) : int|false
  • 参数:$filename:这是需要判断类型的图像文件的路径。
  • 返回值:若成功,该函数会返回一个表示图像类型的常量,这些常量如下表所示。
常量名对应的图像格式文件签名(十六进制)
IMAGETYPE_GIF1GIF 图像47 49 46 38 (GIF8)
IMAGETYPE_JPEG2JPEG 图像FF D8 FF
IMAGETYPE_PNG3PNG 图像89 50 4E 47
IMAGETYPE_SWF4Shockwave Flash46 57 53 (FWS) 或 43 57 53 (CWS)
IMAGETYPE_PSD5Photoshop 文档38 42 50 53 (8BPS)
IMAGETYPE_BMP6BMP 图像42 4D (BM)
IMAGETYPE_TIFF_II7TIFF 图像(Intel 字节顺序)49 49 2A 00 (II*)
IMAGETYPE_TIFF_MM8TIFF 图像(Motorola 字节顺序)4D 4D 00 2A (MM*)
IMAGETYPE_JPC9JPEG 2000 码流FF 4F FF 51
IMAGETYPE_JP210JPEG 2000 文件00 00 00 0C 6A 50 20 20
IMAGETYPE_JPX11JPEG 2000 文件(JPX)-
IMAGETYPE_JB212JBIG2 图像-
IMAGETYPE_SWC13Shockwave Flash 压缩文件-
IMAGETYPE_IFF14IFF 文件-
IMAGETYPE_WBMP15WBMP 图像-
IMAGETYPE_XBM16XBM 图像-
IMAGETYPE_ICO17ICO 图像00 00 01 00
IMAGETYPE_WEBP18WebP 图像52 49 46 46 x x x x 57 45 42 50
IMAGETYPE_AVIF19AVIF 图像66 74 79 70 61 76 69 66
IMAGETYPE_UNKNOWN0未知类型-

二、开启exif模块

exif_imagetype功能正常使用需要开启php_exif模块,具体方法有两种,选择任意一个均可。

1、phpstudy设置勾选php_exif模块

通过小皮工具首页-网站-管理-php扩展-选择勾选php_exif,具体效果如下所示。

2、php.ini文件配置开启php_exif模块 

找到对应版本的php.ini文件,搜索exif关键字,找到后注释掉前面的分号即可,如下所示。

三、源码分析

打开upload-labs靶场的第16关,源码如下所示。

 如上代码主要功能是实现一个简单的图片上传功能,并且会对上传的文件进行类型检查,只允许上传 GIF、JPEG 和 PNG 格式的图片。通过exif_imagetype检测白名单图片类型来验证是否为图片,具体分析如下所示。

(1)使用了exif_imagetype()检测真实文件类型,比单纯检查文件扩展名更可靠,能有效防止简单的图片马攻击(如仅修改扩展名)

(2)随机化文件名,使用随机数+日期时间戳生成文件名,防止直接猜测文件路径

但是该关卡未验证文件内容是否为为类型的图片,虽然检查了文件头,但未验证整个文件内容是否真实匹配该类型,故而攻击者可能构造一个带有有效图片头的恶意文件。详细注释的代码如下所示。

<?php
// 定义一个函数,用于判断文件是否为图片,并返回图片类型
function isImage($filename){// 需要开启php_exif模块才能使用exif_imagetype函数// exif_imagetype函数用于读取图片文件开头部分,判断其类型,并返回对应的常量$image_type = exif_imagetype($filename);// 使用switch语句根据不同的图片类型常量进行判断switch ($image_type) {// 如果是GIF图片类型case IMAGETYPE_GIF:// 返回文件扩展名gifreturn "gif";// 跳出switch语句break;// 如果是JPEG图片类型case IMAGETYPE_JPEG:// 返回文件扩展名jpgreturn "jpg";// 跳出switch语句break;// 如果是PNG图片类型case IMAGETYPE_PNG:// 返回文件扩展名pngreturn "png";// 跳出switch语句break;    // 如果不是以上列举的图片类型default:// 返回false,表示不是支持的图片类型return false;// 跳出switch语句break;}
}// 初始化一个变量,用于标记文件是否上传成功,初始值为false
$is_upload = false;
// 初始化一个变量,用于存储上传结果的提示信息,初始值为null
$msg = null;
// 检查是否通过POST方式提交了名为submit的表单数据
if(isset($_POST['submit'])){// 获取上传文件在服务器上的临时存储路径$temp_file = $_FILES['upload_file']['tmp_name'];// 调用isImage函数,判断上传的文件是否为支持的图片类型,并返回文件扩展名$res = isImage($temp_file);// 如果返回值为false,说明文件不是支持的图片类型if(!$res){// 设置提示信息,表明文件类型未知,上传失败$msg = "文件未知,上传失败!";}else{// 生成上传文件的最终保存路径,包含随机数、当前日期时间和文件扩展名$img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$res;// 尝试将临时文件移动到最终保存路径if(move_uploaded_file($temp_file,$img_path)){// 如果移动成功,将上传成功标记设置为true$is_upload = true;} else {// 如果移动失败,设置提示信息,表明上传出错$msg = "上传出错!";}}
}
?>

四、图片马

1、图片马概念

图片马是一种将恶意代码隐藏在图片文件中的攻击手段。攻击者通过修改图片文件的二进制数据,将恶意脚本嵌入其中,通常利用Web服务器的文件包含访问图片马来执行恶意代码。

2、图片马制作

对于通过使用exif_imagetype判断是否为图片的情况,使用copy命令制作图片马的方法如下所示。

(1)构建脚本命名info.php

<?php
phpinfo();
?>

(2)准备好3种类型的图片test.gif,test.jpg,test.png

进入到图片文件test.gif,test.jpg,test.png和脚本文件info.php所在的目录

(3)制作图片马

然后执行以下命令即可生成test16.jpg,test16.gif,test16.png三种类型的图片马。

copy /b test.jpg + info.php test16.jpg
copy /b test.png + info.php test16.png
copy /b test.gif + info.php test16.gif
  • /b参数的作用是让copy命令以二进制模式进行文件合并,这样能保证图片文件的二进制数据不被破坏。
  • test.jpg是正常的图片文件。
  • info.php是包含恶意代码的脚本文件。
  • test16.jpg,test16.gif,test16.png是最终生成的图片马文件。

生成的图片马效果如下所示。

五、渗透实战

1、上传图片马

打开靶场第16关,上传第四步制作的3张图片马test16.jpg,test16.gif,test16.png,三个图片马均上传成功,右键获取图片马的URL地址,具体如下所示。

2、利用文件包含访问图片马

(1)jpg

http://127.0.0.1/upload-labs/include.php?file=upload/1420211026153704.jpg

(2)gif

http://127.0.0.1/upload-labs/include.php?file=upload/5320211026153647.gif

(3)png

http://127.0.0.1/upload-labs/include.php?file=upload/7820211026153708.png

http://www.dtcms.com/wzjs/119755.html

相关文章:

  • 做外贸有哪些免费的网站互联网营销的十五种方式
  • 自己做网站生意怎么样西部数码域名注册
  • 河西做网站公司长沙网站优化推广方案
  • 网站开发基本步骤百度客服平台
  • 租号网站怎么做沈阳网站建设公司
  • 网站制作中心网站建设网络营销
  • 中国平面设计网济南seo网站优化公司
  • 回收手表网站设计公司网站
  • 嘉兴行业网站建设正规电商培训学校排名
  • 免费做三级网站关键词全网搜索工具
  • 查看网站是否被k快速排名优化seo
  • 打开网站弹出qq关键词优化的策略有哪些
  • 成都行业网站设计股票指数是什么意思
  • 巨野做网站网络工程师培训一般多少钱
  • 新疆建设兵团养老保险网站怎样打开网站
  • 如何做网站建设俄罗斯搜索引擎浏览器
  • 自定义投票网站怎么做网站排行
  • 一个小胖子从网站做任务的色情故事关键词自助优化
  • 廊坊市建设局网站重庆旅游seo整站优化
  • 黑龙江农垦建设局网站芒果视频怎样下载到本地
  • 专业的外贸网站建设公司排名淘宝引流推广怎么做
  • bitnami wordpress 安装珠海百度搜索排名优化
  • 邯郸网站制作基本流程百度seo关键词
  • 建立自己的购物网站电脑培训网上免费课程
  • 2008vps做网站信息流广告有哪些投放平台
  • 学java做网站需要学什么seo网站推广助理招聘
  • 有关优化网站建设的书籍汕头网站推广
  • 濮阳交友网站开发公司免费网络营销推广软件
  • 网站模板做的比较好的网站制作公司网站
  • 河南平台网站建设公司模板免费网站建设