mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
29 lines
1.5 KiB
Markdown
29 lines
1.5 KiB
Markdown
# Internet Printing Protocol
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
The **Internet Printing Protocol (IPP)**, as specified in **RFC2910** and **RFC2911**, serves as a foundation for printing over the internet. Its capability to be extended is showcased by developments like **IPP Everywhere**, which aims to standardize mobile and cloud printing, and the introduction of extensions for **3D printing**.
|
|
|
|
Leveraging the **HTTP** protocol, IPP benefits from established security practices including **basic/digest authentication** and **SSL/TLS encryption**. Actions like submitting a print job or querying printer status are performed through **HTTP POST requests** directed at the IPP server, which operates on **port 631/tcp**.
|
|
|
|
A well-known implementation of IPP is **CUPS**, an open-source printing system prevalent across various Linux distributions and OS X. Despite its utility, IPP, akin to LPD, can be exploited to transmit malicious content through **PostScript** or **PJL files**, highlighting a potential security risk.
|
|
|
|
```python
|
|
# Example of sending an IPP request using Python
|
|
import requests
|
|
|
|
url = "http://printer.example.com:631/ipp/print"
|
|
headers = {"Content-Type": "application/ipp"}
|
|
data = b"..." # IPP request data goes here
|
|
|
|
response = requests.post(url, headers=headers, data=data, verify=True)
|
|
print(response.status_code)
|
|
```
|
|
|
|
If you want to learn more about [**hacking printers read this page**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
|
|
|