心得经验总结:打印机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) {

相关文章
|
设计模式 算法 安全
一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)
一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)
494 0
|
5月前
|
网络协议 NoSQL Anolis
开局一张图,debug全靠瞪|内核问题定位与静态分析实战
本文描述了一个在AnolisOS 8.8操作系统上遇到的内核崩溃问题的调试过程。
|
7月前
|
开发框架 前端开发 JavaScript
看图知义,Winform开发的技术特点分析
看图知义,Winform开发的技术特点分析
|
8月前
|
存储 安全
心得经验总结:打印机PCL漏洞原理分析
心得经验总结:打印机PCL漏洞原理分析
83 0
|
编解码 算法 安全
细说网络电话的原理
VoIP 电话/VoIP 网络电话系统把普通电话的模拟信号转换成计算机可联入因特网传送的IP 数据包,同时也将收到的IP数据包转换成声音的模拟电信号。经过VoIP 电话/VoIP 网络电话系统的转换及压缩处理,每个普通电话传输速率约占用8~11kbit/s 带宽,因此在与普通电信网同样使用传输速率为64kbit/s 的带宽时,VoIP 电话/VoIP 网络电话数是原来的5~8 倍。VoIP 电话/VoIP 网络电话的核心与关键设备是VoIP 电话/VoIP 网络电话网关。
1041 0
|
监控 NoSQL Unix
开源代码分析技巧之三——老外如是说
继续从深入分析开源代码说起,当然源码分析没有太多捷径可走。笔者只是探讨下,如何分析会更好些。特通过Samba技术邮件群组,向老外提问“如何更好的分析Samba源码”。
300 0
|
编解码 自然语言处理 C语言
x264源代码分析-转
相关说明: 1.     使用版本:  x264-cvs-2004-05-11 2.     这次的分析基本上已经将代码中最难理解的部分做了阐释,对代码的主线也做了剖析,如果这个主线理解了,就容易设置几个区间,进行分工阅读,将各个区间击破了.
991 0
|
缓存 Linux Android开发