心得经验总结:打印机PCL漏洞原理分析

简介: 心得经验总结:打印机PCL漏洞原理分析

0x01 漏洞概要

PCL代表打印机控制语言(Printer Control Language),由惠普公司开发,并被广泛使用的一种打印机协议。关于另一种页面描述语言//代码效果参考:http://www.zidongmutanji.com/zsjx/252845.html

,应该提一提由Adobe设计的PostScript(PS),它可以将更为复杂的事情交由绘图仪/打印机处理。PJL (Printer Job Language,打印机作业语言)作为PCL的扩展,用于指导打印机行为,比如更改设备设置、传输文件等。 若打印机的9100端口向公网开启,在//代码效果参考: http://www.zidongmutanji.com/bxxx/152356.html

向打印机发送PJL指令之前需要对使用者的身份进行认证,认证程序的密钥长度为2字节(Byte),因此可以通过暴力破解认证密钥想打印机发送PJL指令,最终导致任意命令的执行。

PJL (Printer Job Language)程序用于告诉打印机执行什么动作,是对PCL的额外支持。 //代码效果参考:http://www.zidongmutanji.com/bxxx/102222.html

PJL (Printer Job Language) 用于规范格式化页面的基本语言。本身是无害的,但却成为大多数解析器和解释器的漏洞利用代码。

0x02 漏洞原理

打印机系统9100端口开启时,若连上该端口通过PJL指令发送设备名称请求并得到打印机的响应,说明可以未授权访问打印机,PJL保护机制的密钥由2个字节(16比特)的存储单位存储,可以进行暴力破解攻击,从而得到目标打印机的完全访问权限。

根据国外安全研究员PHENOELIT 已经写好了漏洞利用程序,对其中的主要代码进行分析,得到下面的流程图

下面是破解密钥部分的代码:

在pjlsession.cpp中的230到256行

void PJLsession::blind_disable_pjl_password(unsigned int pass) {

相关文章
|
5月前
|
存储 安全
心得经验总结:打印机PCL漏洞原理分析
心得经验总结:打印机PCL漏洞原理分析
56 0
|
6月前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
物联网 C语言 芯片
Stm32 向 keil 中添加库及应用程序 | 学习笔记
快速学习 Stm32 向 keil 中添加库及应用程序
Stm32 向 keil 中添加库及应用程序 | 学习笔记
|
安全 网络安全 PHP
文件包含漏洞原理解析_1 | 学习笔记
快速学习 文件包含漏洞原理解析_1
144 0
文件包含漏洞原理解析_1 | 学习笔记
|
安全 Android开发
21天打卡Andoid学到的一些小知识-第十九二十二十一天
今天我们学习打卡的内容是:android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
91 0
|
Windows API
.Net程序开发中一个较为隐蔽的GDI泄露探析
最近一直在调试第三方委托开发的医疗输液系统(我接手时,代码已经完成,原则上我只修改接口部分以适应我们的硬件即可,不过调试过程中,该程序本身问题暴露不少),该系统用VB.net开发,该软件的图形界面是花费n多银子专门做的美工,大量的贴图,就是目前的主流PC机配置,也很难在调试模式下走顺溜
1149 0