光学字符识别 (OCR) 是从图像或任何文档(如 PDF)中以电子方式提取文本并以多种方式重复使用的过程,例如全文搜索、发票处理、文档验证等。这种用例将是有害的当这些提取的文本/结果在应用程序中的某处使用或在未经验证的情况下被反映时,这一点很明显。
所以我们只需要准备一个包含我们的 XSS 向量的图像,如果解析器解析并将输出反映给用户,它将导致 XSS。
我以简单的jpg为例
你可以从这里创建这样的图像。
我将tesseract用于 OCR 以及一个简单的烧瓶服务器,该服务器接受图像作为输入,它解析并将提取的内容反射回管理员或其他用户。你可以在这里找到代码。
同样,创建带有标签或盲 XSS 有效负载的图像,以确认对本地服务器的 pingback。
笔记:
不同的解析器对某些字符(例如 tesseract)的行为不同,会将正斜杠“/”视为 L,因此当您输入 http:// 时,它将变为 http:/l,因为它在浏览器中不起作用,所以我是使用反斜杠。像这样,我们也必须为其他人弄清楚。
在这里,我使用 ngrok.io 只是为了确认您可以使用 burp collaborator 或任何其他工具的 ping。因此,使用此内容创建您的图像并上传并查看是否有任何点击。
回复:
修复: 如果您使用 OCR 服务,不仅要使用文件名,还要在将图像或 pdf 中提取的文本存储到数据库之前对其进行清理。
上传图片后,检查响应是否也反映了图片的内容?如果是,则可能在某个地方正在使用它,并且如果没有检查输出文本是如何反映的,那么它可能会导致 XSS,尤其是使用 OCR 服务的应用程序。
因此,下次当您看到任何要求 KYC 或上传扫描文件、护照尺寸照片、文件验证的应用程序时,您可以乱用它。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。