105
十二月七号,大雪节气。
雨晴对这个节气没什么概念,只知道日历上写着“大雪”,但郑州没下雪。上一次的雪早就化了,地上干干净净的,只有风还在刮。十一月的雪来得早,走得也快,像是一个迷路的人路过了一下郑州,发现走错了,转头就回去了。气温比上周又低了几度,早上的温度到了零下,骑车的时候手套都挡不住那种干冷干冷的寒意,手指头冻得发僵,到学校要搓好一会儿才能恢复知觉。
学校的期末考试安排正式贴出来了。雨晴在公告栏前面站了一会儿,看着那张A3纸上的表格,上面写着日期、时间、科目、考场。她的名字不在上面——缺考名单上会有,但她不会看到。班主任已经帮她办好了请假手续,让她安心办自己的事,不用管考试。但雨晴还是觉得有点不舒服,像是跑步比赛的时候别人都站到起跑线上了,她还在场外站着。
“你真不考了?”刘心怡站在她旁边,也看着那张表格。
“嗯,请了假。”
“那你下学期怎么办?”
“补考。”雨晴的语气很平,像是在说一件跟自己没什么关系的事。但其实不是。她很在乎。只是在乎也没用,两件事撞在一起,总要选一个重要的先做。
刘心怡看了她一眼,没再问。她总是这样,知道的不会多说,不知道的也不会多问。两个人从公告栏往教室走,走廊上有人在跑,有人在喊。一个男生从她们身边冲过去,差点撞到刘心怡,刘心怡“喂”了一声,那男生回头说了声“对不起”,跑了。
“你期末复习怎么办?”刘心怡换了话题,大概是不想让气氛太沉。
“最近在看,翻翻笔记,把重点过一遍。回来再系统复习。”雨晴说着,脑子里已经开始过了一遍各科要复习的内容。语文的古文背诵,数学的公式,英语的单词和语法,物理的概念和实验题。不算多,但要在一个月内全部过一遍,还得保证质量,也不轻松。
“要不要周末一起复习?”刘心怡问。
“行,这周六?”
“好。”
语文课,老师讲《周亚夫军细柳》,让翻译“军中闻将军令,不闻天子之诏”。雨晴在本子上写了一句“军中只听将军的命令,不听天子的诏令”。老师走过的时候看了一眼,点了点头。她很少被老师单独表扬,这次点了头,她觉得还行。但那个“还行”很快就过去了,因为她脑子里已经在想别的事了。
数学课发了一张期末模拟卷,让当堂做。雨晴做得很慢,不是因为不会,是走神了。做到一道函数应用题的时候,她盯着题目看了好一会儿——题目讲的是一个商店的利润变化,进价、售价、销量,问什么时候利润最大。她算了一会儿,算出来了,但不确定对不对。旁边的刘心怡已经把卷子翻到第二面了。
下课铃响的时候她还有一道大题没做。刘心怡问她“要不要抄我的”,雨晴说“不用,我自己做”。她是那种宁愿做不完也不抄别人答案的人。中午补了几分钟,做完了。但最后那道大题最后还是没做对,她知道。
中午食堂做了冬瓜炖排骨。排骨比上次多一些,不知道是换了采购还是换了师傅的心情。雨晴打了饭,找了个靠窗的位置坐下。刘心怡端着一碗面坐过来,说“今天面不好吃,太咸了”。雨晴把自己碗里的一块排骨夹给她,刘心怡说“不用”,雨晴说“吃不完”,其实不是吃不完,是觉得刘心怡最近瘦了。
“你生日礼物我买好了。”刘心怡咬了一口排骨,含糊地说。
“买的什么?”
“不告诉你。”刘心怡笑了笑,嘴角还沾着排骨的酱汁。
雨晴没追问,低头吃饭。冬瓜炖得很烂,入口即化,但没什么味道。她用排骨的汤汁拌了拌饭,就好吃多了。食堂的米饭总是偏硬,泡了汤之后软下来,口感好了不少。
下午最后一节是物理课,老师讲质量与密度。做了个实验,用天平测物体的质量,用排水法测体积。雨晴在实验报告上记录数据,写了六组,平均值算了两遍,第一遍算错了,第二遍才对。她看着那个正确的数字,在本子上画了一个小小的对勾。物理是她最近学得最认真的一科,因为她知道手术后的恢复期可能会影响她的运动能力,但思维不受影响,物理靠的是逻辑,她得把这科学扎实。
放学后雨晴没去便利店,直接回家了。骑车路过菜市场的时候停了一下,买了大白菜、豆腐、粉丝,还有一袋橘子。这几天降温,她想煮一锅大白菜豆腐粉丝汤,简单,热乎,吃了胃里舒服。卖菜的阿姨认得她了,说“今天买这些够了?”“够了。”又多给了她几根葱。
到家的时候橘子皮在暖气片旁边窝着,听见门响耳朵动了动,没动。雨晴换了鞋,把菜放好,先去摸了摸猫。橘子皮的肚皮朝上,四仰八叉地躺着,爪子缩在胸口,像一团被压扁的橘色面团。雨晴伸手摸了摸它的肚子,它“咕噜”了一声,还是没睁眼。
“你是真的懒。”她说。橘子皮的尾巴摆了摆。
做晚饭的时候她先把大白菜切了,豆腐切块,粉丝泡软。锅里倒水,放姜片,水开了放大白菜,煮软了加豆腐和粉丝,最后加盐、白胡椒粉、几滴香油。汤煮好,端到桌上,热气腾腾的。她一个人坐餐桌前喝了两碗,出了一头汗。白菜很甜,豆腐嫩滑,粉丝吸饱了汤汁,每一样都好吃。橘子皮闻到味道走过来蹲在她脚边,仰头看着她,她夹了一筷子白菜帮子给它,它闻了闻,不吃。
“你就不吃蔬菜。”她说。橘子皮又走回去了。
吃完饭后洗了碗,坐到书桌前打开笔记本。
第四个项目的进度比预期慢。OA系统的权限绕过她试了好几种方法,都不行。今天打算从Cookie入手,看看有没有什么可以利用的地方。打开Burp Suite抓包,看请求头,看Cookie的参数。她发现了一个叫“userId”的参数,值是一串数字。她试着改了一下数字,刷新页面——页面加载出来了,但显示的不是她自己的信息,是另一个用户的信息。一个横向越权漏洞。这个漏洞的严重程度不低,可以越权查看其他用户的数据。她截了图,细细地记录。又试了“roleId”的参数,把数字改成admin对应的值,页面报错了,但不是403,是500。这说明后端处理了这个参数,但可能是权限校验不完整。她花了一个多小时写测试用例,反复验证了几种不同的roleId值,最后确认了两个可以利用的组合。
她全记录下来,把测试步骤连同截图一起整理好,存进报告草稿里。
写完之后,雨晴靠在椅背上,长长地呼了一口气。橘子皮跳上桌,趴在她面前。她摸着猫的头,猫的呼噜声在安静的房间里响着。不知不觉已经快十点了,窗外的夜黑透了。
手机震了一下。她拿起来看,是林听夏发来的一条消息:“周末过来吗?我给你炖汤。”
雨晴看着那几个字,心里热了一下。外面大风降温,有人对她说“我给你炖汤”,这感觉就像在寒夜里捧着一碗热汤,从指尖暖到胃里。
她打了几个字,发出去:“周六上午去。”
“行。想喝什么汤?”
“排骨汤。”
“好。”
放下手机,雨晴把它扣在桌上,嘴角不自觉地上扬了一下。她又看了一眼笔记本屏幕,OA系统的漏洞列表里又多了一条。
她想着周末去林听夏那边,喝她炖的汤,听她说“又瘦了多吃点”。每次去都这样说,每次走的时候也这样说。
她洗了澡,躺在床上,橘子皮钻进被子里。今天它没在她脚边盘着,而是直接走到她胸口上趴下来,沉甸甸的,压得她有点喘不过气,但很暖。她把被子拉上来盖住猫,只露出一个脑袋。
她拿着手机,翻到和林听夏的聊天记录。从十一月初到现在,她们每天都会发几条消息,没什么大事,就是“吃了吗”“睡了”“今天冷了多穿点”。琐碎的,像碎掉的玻璃碴子,不值钱,但在光下一闪一闪的。
她翻到一条,是十一月下旬发的,林听夏说“今天我这边供暖了”。她回了个“终于”。过了几天她又去林听夏那边,摸了摸暖气片,温的。她问“暖和吗”,林听夏说“比没有强”。她看着那条记录,想起林听夏说这句话时的表情——平静的,没什么抱怨,好像“比没有强”就是她对生活的全部要求。她心疼她,但又不知道怎么表达。
翻到更早的,十月份的。那段时间她们刚分居不久,见面次数少,消息发得更少。
雨晴把手机放到枕头旁边,翻了个身。橘子皮被她这一动弄醒了,哼唧了一声,从她胸口上跳下去,钻到被子里,在她腿边重新盘成一团。
窗帘没拉严,路灯的光透进来,在天花板上画了一道细细的线。她盯着那道光,想着周末的事。周六去林听夏那边,喝排骨汤,坐一会儿,下午回来。周日和刘心怡去图书馆复习。然后下周就是期末复习周,再然后——就是一月了。一月来得很快,快得像十一月的雪,一下子就化了,一下子就没影了。她翻了个身,把被子拉到下巴。
窗外的风大了,吹得树枝打在墙上,一下一下的。她听着那个声音,慢慢地睡着了。
十二月十二号,双十二。
学校里的同学都在讨论网上买什么东西,刘心怡说她抢到一双鞋,五折。雨晴什么也没买,她没什么要买的,也不想花钱。但她帮橘子皮囤了两袋猫粮,双十二减二十,比平时便宜,划算。
上午课间的时候,班主任来教室发了一张表,是期末考试的考场安排和注意事项。雨晴没接,班主任对她说“你的假条我批了,但表还是给你一张,留着做纪念”。雨晴接过来,看着那张纸上密密麻麻的考场号和座位号,她的名字不在上面。她把纸对折,放进书包里,留着了。
中午和刘心怡在食堂吃饭。刘心怡问她“你什么时候去医院”,“月底还要去抽一次血,一月初还要做一次心理评估”。“这么多检查?”刘心怡以为就是做个手术,不知道术前要做这么多准备。
“嗯,得确保身体没问题。”
“那你身体没问题吧?”
“没问题。”雨晴说。她的身体除了那个从出生就存在的小小差异之外,一直都挺好。不怎么生病,感冒了扛两天就好。她觉得自己应该能扛得住手术,那种切肤的、伤筋动骨的疼。
下午放学后雨晴骑车去了医院。不是做检查,是去交一份材料——上次忘了带身份证复印件。妇科门诊的人比上次多,候诊区坐满了人,大多是孕妇,肚子鼓鼓的,手放在肚子上。有年轻的也有年纪大一些的,有的一个人来,有的有丈夫陪着。雨晴把复印件交给护士,正准备走,护士叫住她,“对了,你那个心理评估约了吗?”雨晴说还没。护士说“早点约,一月初人多的”。
她问护士怎么约,护士给了她一个电话,让她打这个就行。雨晴记下了号码,走出医院,站在门口拨了过去。那边接电话的是个年轻女声,问了她姓名、年龄、为什么做评估,她简单说了——“做手术,术前需要”。对方给她约了1月10号上午十点。她挂了电话,心里又多了一个截止日期。
回到家后,她把手机里的备忘录打开,把新加的这个日期输了进去。现在上面写着:12月20号抽血,1月10号心理评估,1月24号爸妈来,1月25号手术。她看着那个清单,觉得像是一张行程表,每一步都安排好了。她是一个遵守时间表的人,几点起床、几点出门、几点到校,从来不会差太多。但面对这张表,她宁愿它过得慢一点。
晚上做项目的时候,她发现了一个比较严重的问题。OA系统的文件上传接口没有做任何校验,直接上传了一个PHP文件,拿到了路径。她截了图,测试了多种文件类型——jpg、png、pdf、zip,只有PHP文件能成功上传并解析。这说明系统只在前端做了限制,后端完全没有过滤。她把这个漏洞的严重程度标为“高危”,在报告里详细记录了整个绕过过程、使用的payload以及可能造成的危害。
写完之后她从头读了一遍,加了几条修复建议:一是后端校验文件类型,二是限制可执行文件的运行权限,三是对上传目录做严格的访问控制。她的报告写得越来越顺手了,知道什么地方该详细、什么地方一笔带过。
今天收工比平时早,不到十点就合上了笔记本。她靠在椅背上,抱着橘子皮。猫今天很安静,没挣扎,就让她抱着,头搁在她手臂上,眯着眼睛。
她在想,一月的心理评估,不知道会问些什么。她在网上查过,大概是问一些关于自我认知、手术动机、术后期待的问题。她不怕回答这些问题,她知道自己是谁,也知道自己为什么做这个手术。但她怕的是,万一评估不过怎么办。这个念头像一根针扎进她脑子里,她赶紧甩了甩脑袋,不让它在那儿待太久。
洗了澡躺在床上,她拿起手机,给林听夏发了一条消息:“今天约了心理评估,1月10号。”
林听夏回:“那快了。”
雨晴看着“快了”这两个字,觉得它们像一列火车的汽笛声,从很远的地方传过来,告诉你车就要到了。
十二月十五号,周日。
郑州又降温了,最低温度到了零下五度。
雨晴和刘心怡约在图书馆一起复习。图书馆有暖气,比教室还暖和,窗户上结了一层水汽。她们找了个靠窗的位置坐下,一人一张桌子,各看各的。雨晴把数学笔记拿出来翻,看到二次函数那一章,发现自己有好几个公式记混了。她在草稿纸上重新推导了一遍,心里默念了两遍,确认这次记住了。
刘心怡在看英语,偶尔念出声来。雨晴听着她在背“compare”的用法,compare to和compare with有什么区别,一个是比喻一个是比较,上学期的内容了,她都记得。刘心怡背了几遍还是混,小声嘟囔了一句“怎么这么难”。
雨晴没说话,低头继续看物理。密度和质量的关系,公式是ρ=m/V,她默写了一遍,写下单位。物理是她最近学得最认真的一科,可能因为这是新开的科目,还没有太多欠账。她觉得自己像是在补课,补的不是知识,是时间。
中午两个人去图书馆旁边的面馆吃了碗面。刘心怡吃的是牛肉面,雨晴吃的是素面,便宜三块钱。面馆里人多,等了十几分钟面才上来。刘心怡看了看她的碗,“你为什么不加肉”,“不想吃”。不是不想吃,是想省钱。但她没跟刘心怡说这个。刘心怡把自己碗里的几片牛肉夹给雨晴,“我吃不完”。雨晴知道她是故意夹的,但没拒绝。两个人低头吃面,热气升起来模糊了视线。雨晴吃了一口带着牛肉的素面,面的汤底是一样的,有牛肉没牛肉差别还是很大。
吃完饭回到图书馆,雨晴趴在桌上眯了十分钟。醒来的时候刘心怡在看她,说“你刚才睡着了,打呼噜了”。“我没打呼噜”。“打了,小声的,像猫”。雨晴没接话,翻开笔记本继续看。
下午三点多,刘心怡说“我走了,我妈让我早点回去”。雨晴说“好”。刘心怡走之前从书包里拿出一个包装好的盒子,巴掌大,递给她。“生日快乐,提前送。”雨晴接过来,“现在不能拆吗?”刘心怡说“随你”。雨晴拆开,是一条手链,银色的,细细的,坠子是一个小猫的爪子,很小巧,很精致。她看着那个猫爪子坠子,想起橘子皮的爪子,粉色的肉垫。刘心怡说“看你挺喜欢猫的,就买了这个”。雨晴说了声“谢谢”。刘心怡笑了笑,走了。
雨晴把手链戴在手腕上,大小刚好。她又看了一会儿那个小猫爪子,然后继续复习。把数学错题本过了一遍,英语作文背了两篇范文,语文古诗默写了一遍,物理公式默写了一遍。
图书馆闭馆的时候她才走。天已经黑透了,路灯亮着。她骑上车,风比白天更大了,吹得她车头都有点晃,握紧了把慢慢骑。
到家的时候橘子皮在暖气片旁边睡觉。她换了鞋,把书包放下,坐到书桌前打开笔记本。做了两个小时的测试,又写了几条漏洞描述。
窗外的风呼呼地吹,把窗玻璃吹得嗡嗡响。她抬起头听了听,风好像又大了。郑州的冬天就是这样,不一定会下很大的雪,但一定会刮很大的风,干冷干冷的。她想起林听夏那边老旧的窗户,说不定会漏风。明天去了帮她看看,拿胶带封一下。想着她就在备忘录里写了几个字:“带胶带”。
她洗了澡躺在床上,把刘心怡送的手链放在枕头旁边,借着路灯的光看了好一会儿。猫爪子的坠子很小,做工不算精致,但很用心。她在想刘心怡是怎么挑到这个的,可能在精品店翻了很久。她是那种人,不会说太多漂亮话,但会在小事上花心思。雨晴把手链重新戴上,没有摘。
她翻了个身,橘子皮照例钻进被子里在她脚边盘成一团。
她想着明天去林听夏那边,要带胶带、带一袋橘子、带一颗想见她的心。
窗外的风还在刮,树枝打在墙上,一下一下的。
一下一下的。