首页 > 系统相关 >Linux使用sz/rz命令在服务器上传下载文件 及 GIF89a图片欺骗攻击导致tmp目录很多php开头的文件

Linux使用sz/rz命令在服务器上传下载文件 及 GIF89a图片欺骗攻击导致tmp目录很多php开头的文件

时间:2024-06-04 09:00:22浏览次数:30  
标签:tmp 文件 sz rz XMODEM 服务器 php 图片

一、Linux下使用sz/rz命令从服务器下载文件或上传文件至服务器

    使用secureFX可以直接和LINUX进行文件互传,但有些服务器会要求通过中间服务器连接,无法难过SecureFX直接操作文件了,不过Linux有两个很好用的命令:sz 和 rz

SZ:sz命令就是将服务器上的文件下载到本地电脑。s的意思就是send
RZ:rz命令是将本地的文件上传到服务器。r的意思received

1, sz/rz命令的安装使用

    两个命令都是在服务器上执行,通过secureCRT连接服务器后,在选项->会话选项->X/Y/Zmodem 配置中设置上传和下载的目录,sercureCRT只能操作这两个目录。LINUX服务器默认不带有这两个命令,需要执行安装,在centos下的安装命令:

yum  install lrzsz

    执行下载:直接使用sz 文件名。即下载到配置的下载文件夹。

    执行上传:使用命令:rz -be 会打开一个窗口。输入文件名,再点击右边的添加,就会进入下面的上传列表。确定即可。

1, 关于复制点Zmodem协议

    关于ZModem协议,先从XMODEM协议(XMODEM   Protocol)说起。XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。然而,这种对每个块都进行认可的策略将导致低性能,特别是具有很长传播延迟的卫星连接的情况时,问题更加严重。

    使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。

    ZMODEM是最有效的一个XMODEM版本,它不需要对每个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。ZMODEM对按块收费的分组交换网络是非常有用的。不需要认可回送分组在很大程度上减少了通信量。它是Xmodem   文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输。 

二、linux下tmp目录里很多php开头的文件-GIF89a图片欺骗攻击

某天进入到linux的tmp目录里一看,很吃惊,一堆php开头的文件,如下图:

linux下tmp目录里很多php开头的文件-GIF89a图片欺骗攻击

不知道是哪里来的,而且已经很久了。查看内容基本都是这样的:

[root@kermit tmp]# cat phpzpqXze
GIF89a
<%
response.Write(987651234-123498765)
strURL = Request.Servervariables("url")
intPos = InstrRev(strURL,"/")
intStrLen = len(strURL)
strFileName = Right(strURL,intStrLen-intPos)
on error resume next
set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(Server.MapPath(".")&"\\"&strFileName)
%>

    这是GIF89a图片头文件欺骗,是一种攻击,GIF89a图形文件是一个根据图形交换格式(GIF)89a版进行格式化之后的图形。而写到这个临时目录说明是通过上传进入到了这个目录,这个文件会怎么执行呢?如果这个图片被存入进了WEB,在浏览器里打开并加载这个图片时就会出现异常,比如编写一个text文件,内容如下:

GIF89a
<head>
<meta http-equiv = "refresh" content ="1;url=http://www.sohu.com/" />  
</head>

然后保存成名字:a.gif。再在PHP的WEB目录下创建一个img.php文件,里面写上代码:

<img src="a.gif">

    然后访问img.php文件,你会看到页面打开后不久就跳转至搜狐网站了,如果a.gif的文件里跳转时再带上一些读取cookies的参数,那么用户的数据就被窃取了!然后PHP在判断这个图片上却显得很弱智。我们使用php里的函数getimagesize读取这张图片,会得到这样的结果:

Array
(
[0] => 2573
[1] => 26684
[2] => 1
[3] => width="2573" height="26684"
[channels] => 3
[mime] => image/gif
)

    结果显示图片的类型是没问题的,只是在尺寸上有些大,但也许这种注入有其它的办法能将尺寸修改成符合你网站需要的,那PHP在接收图片时有什么办法来阻止这种方式呢?既然getimagesize从图片类型上不能阻止,其它的函数:mime_content_type,Fileinfo也没法阻止了。当然如果攻击的脚本像上面这种完全可以从尺寸上阻止,如果脚本能通过,可以考虑重新将图片生成的方法防止含代码图片进入,程序如下:

//显示php获取的图像信息
print_r(getimagesize('a.gif'));

//如果尺寸合格, 重新创建图像实例
$img = getimagesize('a.gif');
$im  =  imagecreatetruecolor ($img[0], $img[1]);
imagepng ($im ,  './a.'.image_type_to_extension (IMAGETYPE_PNG));
imagedestroy($im);

    这时如果像上面这种脚本上传,重新生成的图片会是一张纯黑图片,也就不存在攻击脚本了。但这样也会带来额外的图片生成开销。

标签:tmp,文件,sz,rz,XMODEM,服务器,php,图片
From: https://blog.csdn.net/weixin_47792780/article/details/139282434

相关文章

  • 纷乱繁杂的声明文件
    费脑子的声明文件初始化项目:#创建项目目录mkdirhello&&cdhello#生成package.jsonnpminit-y#由于是ts项目,安装typescript包npmi--save-devtypescript#生成tsconfig.jsonnpxtsc--initpackage.json{"name":"@kaoniqiwa/hello","vers......
  • 我见我思之hvv偷师学艺——Vmware vcenter未授权任意文件上传(CVE-2021-21972)
    本文为个人整理内容,大部分东西都是参考其它师傅的文章,具体如下:https://blog.csdn.net/qq_37602797/article/details/114109428https://blog.csdn.net/tigerman20201/article/details/129098137常见告警特征:漏洞类型:文件上传。poc利用接口为:/ui/vropspluginui/rest/servic......
  • 使用docker-compose建立一个简陋的文件上传网站
    闲聊因为目前在学校,有时候懒得带U盘,机房的电脑没有ssh,自然也就没有scp了,所以闲来无聊就做个文件上传顺便练练技术。最后弄了两天才弄好,最后又因为我服务器带宽那些太小没法传大文件,最后也算是小白练练技术吧。正文这次的实验是用nginx+php做的,docker-compose做托管相关代码......
  • C/C++多文件目录编译
    本人的项目目录如下:-helloworld -header helloworld.h -src helloworld.cpp main.cpp -bin a.exe在编译g++src/main.cppsrc/helloworld.cpp-obin/a.exe时控制台error:fatalerror:header/helloworld.h:Nosuchfileordirectory,源文件是这样#include"he......
  • 02windows系统查看当前目录下文件夹大小
      #运行powershell复制下面命令执行Get-ChildItem-Directory|ForEach-Object{$folder=$_$totalSize=(Get-ChildItem-Path$folder.FullName-Recurse|Measure-Object-PropertyLength-Sum).Sum$sizeInGB="{0:N2}"-f($totalSiz......
  • .cshtml文件是什么文件,与aspx的区别是什么
    原文链接:https://m.imooc.com/wenda/detail/550239cshtml是MVC3之后新增的视图文件,跟原先的aspx很相似。区别主要在于二者的解释引擎不同。aspx采用的是WebFormEngine,而cshtml则是RazorRenderingEngine。引擎的变化直接导致语法发生变化。aspx中我们经常使用<%te......
  • ADB导出app到电脑生成apk文件
    查找需要导出应用的包名方法一:查找设备上所有应用包名adbshellpmlistpackage方法二:监控设备接下来打开的应用adbshellammonitor查找应用备份包位置adbshellpmpath包名导出文件到电脑adbpull备份包位置本机存放文件地址示例:adbpull/data/app/~~pnUI_O......
  • Python基础:在多个.py文件组成的项目中如何安全的使用文件路径(绝对路径安全,相对路径可
    在Python项目中使用相对路径时,路径的计算是基于当前执行脚本的位置,即当前工作目录(CurrentWorkingDirectory,CWD)。这通常是你从中启动Python解释器的目录。这种方式在简单脚本或当你直接从命令行运行单个脚本文件时行得通,但在较大的项目或多层目录结构中可能导致路径错误......
  • Notepad++文件内容对比插件
    遇到一个比较有意思的测试任务,上报日志功能接口路由需要更换V2版本,需要测试对比V1和V2版本上报的数据有没有异常点思路很简单,使用相同的数据遍历调用V1和V2版本的接口路由,取出最后的日志接口对比即可Notepad++插件compare安装插件--插件管理--搜素compare安装即可(安装插件后程......
  • .npmrc文件是什么?用来干嘛的?
    1.是什么?.npmrc文件是一个npm的配置文件,详见npmrcDescription2.用来干嘛的?用于配置npm(NodePackageManager)的行为和设置。它可以存在于不同的层级,包括全局配置、本地项目配置、用户级别配置等。通过.npmrc文件,你可以自定义npm的许多方面,如注册表地址、缓存位置、代......