游客发表
二维码这玩意儿,维码扫出来是注意个链接,链接背后是得到的个flag。可题目偏要叫“二维码1注意得到的包上flag请包上flag提交”——这行字本身就像个陷阱,提醒你注意“1”这个数字。提交我第一次扫的维码时候,直接弹出一个网页,注意上面白底黑字写着“flag在二维码里”。得到的废话,包上我当然知道在二维码里,提交可这二维码里除了黑白方块还有什么?维码
我盯着那堆方块看了五分钟,眼睛都快对成斗鸡眼了。注意突然想到,得到的二维码不是包上有纠错级别吗?L、M、提交Q、H四级,纠错越强,能掩盖的图案就越多。试着把二维码截图放大,像素格边缘有些许灰点,不像普通二维码那样黑白分明。用图像处理软件拉高对比度,那些灰点现出原形——是更小的二维码。原来大二维码里嵌了个小二维码,就像俄罗斯套娃。
小二维码扫出来是一串字符:flag{ QR_code_is_not_just_black_and_white}。可题目说“注意得到的flag请包上flag提交”,这flag已经包着flag{ }了,还包什么?我试着原样提交,系统提示错误。再读题——“二维码1注意得到的flag”,这个“1”是重点。会不会有二维码2?翻遍题目附件,只有一个图片文件。用十六进制编辑器打开图片,文件末尾多出几个字节,不是正常的PNG结束标记。把那串十六进制转成ASCII,是另一段话:“看看你的手机相册”。
我手机相册里存着刚才拍的二维码照片,但拍照时手抖,照片有点歪。试着用手机自带的文档扫描功能重新框选,软件自动矫正了透视变形。扫描结果还是那个大二维码,但矫正后的图片角落出现了一个极淡的浅灰色小方块——之前因为角度倾斜,那个小方块被拉伸得几乎隐形。放大那个区域,是个被白色噪点覆盖的小二维码。把噪点用PS的“去除杂色”功能滤掉,终于扫出真正的flag:flag{ perspective_correction_matters}。
提交后系统提示正确。回头看整个过程,最坑的不是二维码嵌套,而是“注意得到的flag”这句话里的“注意”二字——它暗示你去看,但没告诉你用哪种姿势看。有时候答案就藏在视角的偏移里,手机歪一点,真相就歪没了。二维码这东西,本来就是给机器看的,人非要掺和进去,就得学会从机器的角度找茬。下次再遇到这种题,我第一件事先检查图片的像素边界,第二件事把手机转几个角度拍照,第三件事——别急着扫,先看看二维码周围有没有多出来的东西。
友情链接