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

上海地区网站设计二维码设计软件

上海地区网站设计,二维码设计软件,网站开发推进计划表,建立时间和保持时间一、分析源代码 这一关的任务说明已经相当于给出了答案,就是让我们上传一个图片木马,可以理解为图片中包含了一段木马代码。 function getReailFileType($filename){$file fopen($filename, "rb");$bin fread($file, 2); //只读2字节fclose…

一、分析源代码

这一关的任务说明已经相当于给出了答案,就是让我们上传一个图片木马,可以理解为图片中包含了一段木马代码。

function getReailFileType($filename){$file = fopen($filename, "rb");$bin = fread($file, 2); //只读2字节fclose($file);$strInfo = @unpack("C2chars", $bin);    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    $fileType = '';    switch($typeCode){      case 255216:            $fileType = 'jpg';break;case 13780:            $fileType = 'png';break;        case 7173:            $fileType = 'gif';break;default:            $fileType = 'unknown';}    return $fileType;
}$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$temp_file = $_FILES['upload_file']['tmp_name'];$file_type = getReailFileType($temp_file);if($file_type == 'unknown'){$msg = "文件未知,上传失败!";}else{$img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$file_type;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = "上传出错!";}}
}

现在我们分析代码,它这里通过读取文件头的二进制数据判断文件真实类型,而非依赖文件扩展名。简单来说,就是它会通过读取文件头的前两个字节来判断是否是合法的JPG文件。

每个文件类型都有特定的头部字节序列(称为 “魔法数” 或 “签名”),用于标识文件的真实类型。

比如,JPG 文件的头部起始字节为 FF D8,这两个字节是 JPG 文件的必要标识,任何合法的 JPG 文件都必须以FF D8开头。

FF和D8是十六进制数,通常以0xFF、0xD8的形式书写(前缀0x表示十六进制),但在文件头描述中常省略前缀,直接写为FF D8。

FF的十六进制对应二进制为 11111111(8 位,即 1 字节),十进制值为 255。

D8的十六进制对应二进制为 11011000,十进制值为 216。

因此,FF D8本质上是两个连续的字节,其十进制值又分别为 255 和 216。

那为什么用十六进制描述文件头?是为了简洁。

二进制需要 8 位表示 1 字节(如11111111),而十六进制仅需 2 位(FF),更便于阅读和记录。

这关的代码中,通过以下步骤验证 JPG 文件:

1.读取文件前 2 字节,得到二进制数据 FF D8。

2.将两个字节转换为十进制数:255(FF)和216(D8)。

3.拼接为整数 255216,与switch中的case 255216匹配,从而判定为 JPG 文件。

之前我们可以将666.php后缀改成jpg来绕过,但是文件的内容仍然是恶意代码,这里显然无法通过文件头的检测。这关我们将尝试用图片马的方式来绕过。

二、解题思路

图片马的制作有很多种方法,这里我们讲解一种简单的方法:利用cmd命令中的copy。

copy /b 1.jpg + 2.jpg 3.jpg

这段命令是将1.jpg文件和2.jpg文件合并为3.jpg文件,参数/b的意思是以二进制模式复制文件,是为了保证图片数据的完整性。

我们可以利用这条命令将图片和木马合成为图片木马,进行上传,此时图片木马(假设JPG格式)的头部仍然为FF D8,但是中间或者末尾包含了恶意代码,但是这关的PHP代码只检测文件头部的前两个字节,对后面的内容没有检查,所以就产生了绕过。

然后再利用文件包含漏洞(这里按步骤做即可,不另外解释,日后会学习)去验证图片马是否被解析。

三、解题步骤

1.准备一句话木马666.php和一张正常的图片777.jpg。

2.将其合成为图片马。

3.上传图片马。

4.利用文件包含漏洞验证图片马是否能被解析。点击文件包含漏洞,跳转到另一个页面。

在URL中构造文件包含漏洞的语句,即在include.php后面拼接“?file=图片路径”。

隐藏在图片中的木马被成功解析。

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

相关文章:

  • 做网站做什么赚钱wordpress revision
  • 公明网站建设怎么做虚拟空间能建多个网站
  • wordpress取回密码收不到邮件连云港网站优化公司
  • 网站设计制作音乐排行榜网站升级对外解决方案
  • 在线网站创做简历做视频的音乐哪里下载网站
  • ci框架建设网站网站规划与设计一千字
  • 杂志社网站建设方案书微博营销方案
  • 免费手机建网站平台谷歌seo优化中文章
  • 南通做外贸的公司网站代理网址设置
  • 哪个国家的绘本网站做的好广州 营销型网站
  • 做招聘网站赚钱么优普道建筑网校
  • 自助网站免费注册如何写一个自己的网站
  • 潍坊做企业手机版网站电子商务论文5000字
  • 如何做网站方案游戏ui素材网站
  • 建个小型网站服务器男女做暧昧视频网站
  • 汉沽做网站软件开发项目管理办法
  • 衡阳购物网站开发案例高端模板网站建设价格
  • 有没有专门做艺术的网站网站如何在google提交收录
  • 企业网站建设栏目结构图浙江网站建设企业
  • 做夜场网站网站建设公司计划书
  • 中文网站建设中项目管理网络图
  • 卖水果网站模板海淘网站建设的目的
  • ps可以做网站动态图荣耀手机官方官网
  • 企业网站管理系统多少钱一年用vue做的网站怎么实现响应式
  • 海口室内设计公司排名南宁网站优化推广
  • 下列关于网站开发中网页网站开源
  • 网站建设佰金手指科杰二九企业网站数据库
  • 男女做暧暧试看网站49专业上海网站建设
  • .net 大型网站开发顺德网站
  • 抽奖网站怎么做免费平台发布销售信息