HackThisSite - Forensic Mission 2
Challenge
Forensic 2 — Cheater
From: howard.davis@divorceattorneys.rus My client is being accused of cheating on his wife. A photograph has been presented in court that shows him with another woman in their bedroom, in their home. The woman in question is a known friend to them both. My client has stated that he did take the photo. However, he claims it was a
selfieand no other person was present in the home or in the picture. As the forensic specialist for our law firm, are you able to detect any digital manipulation within this image?Image link / Password: (提交字段名
forensic2,POST 回关卡页自身)
状态:live 已通关(partially
verified:当时提交的字符串未被留存)。 关卡回执原文为
Congratulations! You've successfully completed Forensic 2!,
profile 的 Forensic: 一行出现
(2)。下面记录可复现的取证过程与结论。
Sample
1 | curl -sL -b "$HTS_COOKIE" -A '<Chrome UA>' \ |
1 | (720, 960) RGB |
方法:ELA(误差水平分析)
ELA 的基本假设是:JPEG 是有损压缩,整幅图被重新压一次时未编辑过的区域残余很小且分布均匀; 而被拼接、复制或二次压缩过的区域,其残余会明显偏离邻域。
1 | from PIL import Image, ImageChops |
1 | global mean 1.07 p90 3 max 24 |
把残余按区域统计(人体主体、右侧背景、左上/门区、顶部条带),可以看到主体与左上的残余显著高于同类纹理区域:
1 | subjects mean 2.65 p90 6.0 frac>4 0.184 |
做一个空转对照(把原图按 q100 + 4:4:4 重编码后再算一次残余),确认这些差异不是编码器带来的:
1 | re-encode q100/4:4:4 -> mean 0.195 max 6 |
也就是说:人脸/人体附近以及左上区域的残余密度是纯重编码噪声的量级以上,
说明该区域经历过额外的编辑或二次压缩。左上区域在放大后还能看出重复/镜像的纹理
(脚本把头部区域做了镜像与放大对比:head_mirrored.png、head_zoom.png、montage_tl.png),
这与照片是自拍、房间里没有别人的说法矛盾,这是典型的把另一张素材里的人/头部复制粘贴进这张照片。
结论与提交
- 判断:图存在人为篡改(拼接/复制痕迹集中在左上与主体区域,残余水平显著高于同类背景)。
- 提交:
POST https://www.hackthissite.org/missions/forensic/2/,字段forensic2=<结论/口令>; 服务端回执:
1 | Congratulations! You've successfully completed Forensic 2! |
- profile:
Forensic: (1) (2)。
Caveats
本文的取证链(ELA + 区域统计 +
镜像/放大比对)是可复现的,通关回执也有原文留档;
但当时提交的那个字符串本身没有保存,事后用同一批产物做过多轮重建(不同质量因子的
ELA、 通道分离、局部放大)都没有稳定读出它,因此本页不写具体答案,
也不写入未经确认的字符串。复现可参照
<hts-workspace>/challenges/hts-forensic/2/
里的全部产物(selfie.jpg、ela*.png、d90.npy、head_mirrored*.png、submit_resp.html
等)。
Vulnerabilities
把两张照片拼在一起这种伪造只对人眼有效:JPEG 的压缩历史会把编辑痕迹留在像素的误差水平里, 同一张图里不同来源的区域永远无法伪装成一次拍摄。要真正伪造需要重编码整幅图并统一噪声指纹, 而有经验的取证者仍能用噪声一致性、压缩历史和多质量因子 ELA 把这些差异暴露出来。
live 已通关(回执与 profile 徽章有原文);提交的字符串当时未留存,本文不编造答案