87
周一的课,雨晴没怎么听进去。
不是内容难,是心思飘了。语文老师讲《记承天寺夜游》,在黑板上写“月色入户,欣然起行”,她盯着那八个字看了一会儿,脑子里想的不是苏轼,是手机银行里的余额。三千二百块。等那一千五到账,就变成四千七。她算了三遍,每一遍都是一个数。
数学课上老师发了上周的测验卷。雨晴考了八十七分,不算高,但比上次进步了。刘心怡凑过来看了一眼她的分数,又看了一眼自己的,说“你比我高两分”。雨晴说“你上次比我高八分”。刘心怡说“那是我抄你的”。雨晴不知道她是在开玩笑还是说真的,没接话。
下午最后一节是自习。雨晴把数学作业写完了,然后掏出手机,在桌斗里看了一眼银行App。还是三千二。她把App关掉,把手机塞回书包,拿出英语课本开始背单词。背了十个,又在心里算了一遍。一千五到账,四千七。减掉下个月的房租,还剩三千五。再减掉这个月的生活费,大概能剩两千出头。
两千出头。
她想起那件黄色的卫衣,在万达试过的那件,七折之后一百四十多。她当时没买,觉得贵。现在想想,一百四十多好像也不算太贵。但这个念头只闪了一下就过去了。她知道自己不会买。不是因为买不起,是习惯了——习惯了买东西之前先问自己“真的需要吗”。那件卫衣她不需要,她已经有卫衣了,衣柜里挂着三件,够穿了。
放学铃响的时候,刘心怡问她“一起走吗”。雨晴说“今天不去便利店,直接回家”。两个人一起走到校门口,刘心怡往左转去公交站,雨晴往右转去停车棚。
到家的时候橘子皮在门口等她。这两天它养成了一个新习惯——听见钥匙响就开始叫,声音很大,整层楼都能听到。雨晴开门的时候隔壁的老太太正好出来倒垃圾,看了她一眼,说“你家猫真能叫”。雨晴说了声“不好意思”,赶紧进了门。
橘子皮还在叫。雨晴换好鞋,蹲下来摸了摸它的头,它才停下来,开始蹭她的手。
“你今天怎么了,粮不是还有吗。”她走过去看了一眼猫碗,粮还有大半碗,水也还有。它就是单纯地想叫而已。
她把书包放下,去厨房烧了壶水,给自己泡了一杯袋泡茶。端着茶杯坐到书桌前,打开笔记本。邮箱里有一封新邮件——不是甲方发的,是王老师。
“项目做完了?感觉怎么样?”
雨晴回了一封简短的邮件,说做完了,在等付款,第二个项目已经开始了。发完她开始做第二个项目的测试。昨天在后台管理系统发现没有验证码,她今天想试试别的。测了几个功能点,在密码找回页面发现了一个漏洞——系统通过安全问题验证身份,但安全问题的答案可以通过遍历用户ID的方式暴力破解。她试了一下,拿到了一个测试账号的密码重置链接。这个洞严重程度中等,但配合其他漏洞可以组合利用。她截了图,记录下来。
做到一半的时候,手机震了。银行发来的短信:您的账户收到转账1500.00元,余额4700.00元。
雨晴盯着那条短信看了好几秒。
一千五到了。不是“下周到账”不是“三个工作日内”,是到了。她打开银行App,刷新了一下,余额确实变成了四千七。她把App关掉,又打开,又关掉,又打开——三次,都是四千七。
她坐在椅子上,把手机放在桌上,看着屏幕。橘子皮跳上桌,走到手机旁边,歪着头看了看,然后伸出爪子碰了一下屏幕。屏幕亮了一下,又暗了。
“别闹。”雨晴把它抱开,拿起手机,给林听夏发了一条消息。
“第一个项目的钱到账了。”
过了几分钟,林听夏回了:“多少?”
“一千五。”
“嗯,存着,别乱花。”
雨晴看着那行字,笑了一下。林听夏说话的语气越来越像姐姐了,或者说,越来越像母亲了——“别乱花”“多穿点”“早点睡”,全是这种。
她回了个“知道”,把手机放下,继续做项目。
晚上她没做饭。中午食堂吃多了,不饿,就着几片饼干喝了杯牛奶,当晚饭了。吃完洗了个澡,坐到书桌前把今天的测试结果整理了一下,写进报告草稿里。写报告的时候她比以前顺手了一些,知道哪些步骤该详细写,哪些可以一笔带过。甲方不是来看你敲命令的过程的,他们想知道漏洞在哪、怎么复现、怎么修。把这三件事说清楚,其他的都不用废话。
写到安全问题的暴力破解时,她多写了一段,解释了为什么这个问题在真实环境中可能被利用——很多用户的安全问题是“你的小学是哪所”“你的生日是哪天”,这些信息在社交媒体上很容易查到。她把这段写完之后读了一遍,觉得说得有点啰嗦,删了一半,剩下一句“部分安全问题的答案可通过公开信息获取或暴力破解”,干净利落。
写完报告已经快十点了。她合上笔记本,去刷了牙,躺到床上。橘子皮跳上来,在她旁边盘成一团。她摸着猫的背,想着那四千七百块钱。之前觉得一千五很多,真的到手了,反而觉得没那么多了。四千七也不多,离一万还差一大截。她想过要不要做第二个项目的时候加个急——跟甲方说可以提前交付,但要加钱。但想了想,还是算了。她现在还在学习阶段,能接到项目就不错了,不能太贪。
手机震了一下。林听夏发来的:“这周末我休息,你过来还是我过去?”
雨晴想了想,打了几个字:“我去你那边吧,还没去过几次。”
“行。周六中午?”
“好。”
放下手机,她翻了个身。窗户留了一条缝,风从外面挤进来,带着一股干爽的凉意。九月底了,再过几天就是十月,十月过完就是十一月,十一月过完就是十二月,然后就是一月——林听夏的生日,然后就是过年,然后就是手术。
她算了算,还有好几个月。不着急。急也没用。她现在要做的就是把眼前的事一件一件做好——上学、做项目、攒钱、等。
不是等手术,是等在手术之前把该做的事都做完。
周二早上,雨晴到学校的时候比平时早了一点。
校门口人不多,几个值周生站在两侧,戴着红袖章,手里拿着本子。雨晴从他们中间走过去的时候,一个女生看了她一眼,眼神在她身上停了一秒,然后移开了。
她没在意,直接往教学楼走。
上午的课平平常常。物理课讲运动的描述,老师用小球在斜面上滚来滚去演示速度的变化。雨晴盯着那个小球看了整整一节课,不是在看它怎么滚,是在想别的事——想那个后台管理系统的漏洞报告该怎么写,想甲方的补充说明里那个子域名还有没有别的测试点。下课铃响的时候她才回过神来,看了一眼笔记本,只写了半页,全是散的,不成句。
中午和刘心怡在食堂吃饭,吃的还是青椒炒蛋。刘心怡今天带了一盒草莓,是她妈早上洗好让她带学校的。分了雨晴几颗,雨晴接过来,咬了一口。草莓不是很甜,有点酸,但新鲜,咬开的时候汁水溅在舌头上,激得她眯了一下眼睛。
“好吃吗?”刘心怡问。
“还行,有点酸。”
“我妈买的,她说便宜,十块钱三盒。”刘心怡自己也吃了一颗,皱了一下眉,“是有点酸。”
下午第一节课是英语,老师让做阅读理解。雨晴做得快,提前五分钟做完了,在草稿纸上列了一个今天要做的事情清单:一、把后台管理系统的测试做完;二、写漏洞描述;三、去便利店上班。列完之后觉得第三条写上去有点多余,去便利店是她每天都要做的事,不用列也知道,但还是留着,划掉重写不如不划。
放学后她骑车去了美宜佳。周姐在收银台后面吃橘子,剥了一桌皮。看见雨晴进来,说“今天你来早了啊”。雨晴说“下课早”。她换了工服,站到收银台旁边,帮周姐理了理货架上的口香糖,把快卖完的往前摆。
五点半左右人开始多起来。买关东煮的最多,可能是天凉了,大家想吃点热的。雨晴站在关东煮的柜子前面,帮客人夹串、装杯、算钱。有个小学生买了两串鱼豆腐和一杯豆浆,把硬币一枚一枚地数给雨晴,数了三遍才够。雨晴没催他,等他把最后一枚硬币放进手心,说了声“谢谢”。
七点多的时候店里清闲了一些。周姐让她去仓库搬一箱水,她搬了,搬完站在仓库里喘了几口气。仓库没有窗户,灯管只有一根,发出嗡嗡的声响,光线暗得像是黄昏。她站在那里,看着堆满货箱的架子,忽然觉得这个地方很像她现在的生活——不大,不亮,但够用,该有的都有,不该有的也没有。
从仓库出来,周姐递给她一瓶水,说“喝口水歇会儿”。她接过来,拧开盖子喝了一口,水的温度跟室温差不多,不凉也不热,喝下去没什么感觉。
“周姐,”她犹豫了一下,“我下个月可能还要调一次班。”
“怎么调?”
“想周末多上一点,周中少上一点。最近学校那边作业多。”
周姐看了她一眼,没说别的,就一句“行,你提前跟我说”。
雨晴点了点头。
她没说实话。不是作业多,是项目多了。周中放学后那点时间不够用,来回跑便利店要耽误将近两个小时——路上的时间、换衣服的时间、从工作状态切换出来的时间。如果把这些时间都省下来,她每天能多做一个小时的渗透测试。
但她不知道怎么跟周姐开口说“我找到了更赚钱的活儿,所以不想在你这儿干那么久了”。这话说出来太难听了。所以她只说“作业多”。周姐信不信她不知道,但周姐答应了,这就够了。
晚上九点,周姐让她先走。雨晴换回自己的衣服,骑车回家。路上风大了,她把外套拉链拉到最上面,缩着脖子。路灯把她的影子拉得很长,一会儿在前面,一会儿在后面,像一条黑色的尾巴拖在地上。
到家的时候橘子皮在门口等她,照例叫得很大声。她换了鞋,蹲下来摸了摸它,然后去厨房倒了杯水。水是早上烧的,早就凉了,她没加热,咕咚咕咚喝了大半杯。
坐到书桌前,她打开笔记本,把今天要做的测试做完。后台管理系统的文件上传功能存在一个绕过——前端限制了文件类型,但后端没有校验。她试着改了一下请求包,把一个PHP文件伪装成图片上传,成功了。拿到了一个webshell。这个漏洞严重程度高,她把整个过程截图,详细记录下来。
写报告的时候已经十点多了,她有点困,打字的速度慢了下来。但还是坚持把漏洞描述写完,保存,合上笔记本。
躺在床上,她拿着手机翻了翻。林听夏没发消息来,她也没发。她们的聊天记录停在昨天那句“周六中午?好”上。雨晴把那几行字看了一遍,放下手机,关了灯。
窗帘没拉,窗外是深蓝色的夜,看不到星星,只有远处楼顶的红色警示灯一闪一闪的,像一颗不会掉下来的星星。
橘子皮跳上床,在她旁边趴下来。它今天没有盘成一团,而是伸长了身体,像一条毛茸茸的围巾横在她的脚边。雨晴用脚趾碰了碰它的肚子,它“咕噜”了一声,没动。
她闭上眼睛。明天周三,有生物和历史,下午放学要去便利店,晚上回来继续做项目。后天的课表她记不太清,但没关系,课贴在墙上,明天早上出门前看一眼就行。
日子就是这样。一天接着一天,不急不慢的,像她骑电动车的速度——不快,但也不会停下来。
她翻了个身,把被子拉上来盖住肩膀。风从窗户的缝隙里挤进来,带着九月末特有的那种干燥的凉意,吹在她露在外面的耳朵上,凉凉的。
她把被子往上拽了拽,把耳朵也盖住了。