コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

PDFを開くと情報が盗まれるらしい。

情報は盗まれるものなのです

はい、おはようございます。僕です。今日もどうでもいいことを書いていきますね。ということでPDF開くと情報が盗まれるらしいです。怖いですね。なのでソフトはアップデートしておきましょうね。

なんで盗まれるとかそういうちゃんとした一次ソースとかは「PDF 情報が盗まれる」とかで検索して確認してください。


ということで、そんな話をしたいのではないのです。
PDFはJSを埋め込めるやばいやつだっていうデモコード作ろうかなと思ったので貼ります。

from reportlab.pdfgen import canvas
from PyPDF2 import PdfReader, PdfWriter

def create_alert_pdf(filename):
    # 普通のPDFを作る (ReportLab) 
    temp_filename = "base.pdf"
    c = canvas.Canvas(temp_filename)
    c.drawString(100, 750, "Security Education Sample PDF")
    c.drawString(100, 730, "This file will trigger a JavaScript alert.")
    c.save()

    # JSを後付けで埋め込む (PyPDF2) 
    reader = PdfReader(temp_filename)
    writer = PdfWriter()

    # ページをコピー
    for page in reader.pages:
        writer.add_page(page)

    # JavaScriptを「ファイルを開いた時の動作」として追加
    # app.alert(メッセージ, アイコン種類) 
    js_code = 'app.alert("Security Alert: This PDF executed a script successfully!", 3);'
    writer.add_js(js_code)

    # 保存
    with open(filename, "wb") as f:
        writer.write(f)
    
    print(f"✅ Successfully created: {filename}")

if __name__ == "__main__":
    create_alert_pdf("alert_sample.pdf")


こんな感じでアラート警告をだすPDFが作れます。アラート部分を悪用すればニュースにもなる情報を盗むPDFの完成というわけです。

そもそものPDFってこんな仕様なので、たぶんセキュリティアップデートしたところでまた脆弱性ついて穴あきまくると思う。だからPDFは安全なファイルではないという意識でいようね。


おわり