81
九月中的郑州,热意总算退了些。
早晨出门的时候,雨晴在楼道里站了一会儿,确认外面没下雨,才把塞进书包里的折叠伞拿出来放回去。橘子皮蹲在门口看她,尾巴慢慢地甩着,一副“你要出门了那我继续睡了”的表情。
“走了。”雨晴说。
橘子皮没理她。
她骑上那辆刚买没多久的旧电动车,慢悠悠地往学校去。车子是在二手市场淘的,车身是白色的,漆掉了一块,露出底下灰色的底漆。老板说这车续航还行,能跑三十公里,她不太信,但试骑了一圈觉得挺稳的,就掏了钱。
七百块。
路况不好,一段一段的在修。她骑得小心,贴着非机动车道的边,速度比旁边的共享单车快不了多少。早上七点多的郑州已经热闹起来了,送孩子的家长、赶路的上班族、卖早饭的三轮车——所有的声音搅在一起,嗡嗡的,像一锅烧开的水。
雨晴不喜欢赶路,但她也不喜欢迟到。
到学校的时候七点四十,离上课还有二十分钟。她锁好车,背着书包往教学楼走,路过操场的时候看见有人已经在跑步了。她看了一眼,继续走。
初二·三班的教室在三楼。她爬楼梯的时候遇到了刘心怡。
“早。”刘心怡说。
“早。”
两个人并排走。刘心怡手里拿着一袋豆浆,吸管已经插好了,吸一口,说话的时候嘴里冒着热气:“昨天数学作业最后一题你做了没?”
“做了。”
“怎么做的那道?我卡了好久。”
“设辅助线,那条中线连过去。”雨晴比划了一下,“然后证全等。”
刘心怡想了一下,说“哦——懂了”,又吸了一口豆浆。
她们在教室门口分开。刘心怡坐到前排靠窗的位置,雨晴在后排靠墙的位置坐下来。初二重新排过一次座位,但她和刘心怡还是同桌。班主任说“你们俩配合得挺好,就不用换了”,刘心怡当时转过头朝雨晴比了个“耶”。
雨晴笑了笑。
上午的课平平无奇。语文课讲《三峡》,老师让朗读,全班一起读,声音大到窗户都在震。雨晴混在人群里张着嘴,声音不大不小。数学课讲全等三角形的判定,她做了笔记,重点画了几条。英语课最无聊,复习初一的内容,她就着笔记本做了半张兼职项目的前期准备笔记。
同桌瞄了一眼,没问。
第四节是体育课。这是雨晴最不喜欢的课,不是因为运动,是因为不知道站哪边。男生队还是女生队?开学第一周她就问过体育老师,老师看了她一眼,说了句“你先跟着女生这边”。
她跟了三个星期了。没人说什么,但也没人不看。
今天的内容是自由活动。雨晴和刘心怡坐在操场边的台阶上,聊了几句有的没的。刘心怡说周末想去吃学校门口那家新开的麻辣烫,问雨晴去不去。雨晴说“周六下午行吗,上午有事”。刘心怡说“行”。
中午在学校食堂吃。食堂的菜还是那几样,雨晴打了西红柿炒鸡蛋和米饭,找了个角落的位置坐下来。吃到一半的时候,对面坐了一个人。
是苏晚。
“你怎么来了?”雨晴含着一口饭,含糊地问。
“来找你吃饭啊,不行吗?”苏晚把自己的餐盘放下,里面是一碗面,看起来已经坨了,“高二那边食堂装修,这周都要来这边吃。正好过来看看你。”
雨晴把饭咽下去,说“我挺好的”。
“你脸上有饭粒。”苏晚说。
雨晴摸了摸嘴角,摸到一粒米饭,把它塞进嘴里。
苏晚笑了一下,低头开始拌面。面已经坨成了一团,她拌得很费劲,雨晴看着都觉得累。
“你最近忙不忙?”苏晚问。
“还行,作业不算太多。”雨晴说。
“兼职呢?还在便利店?”
“在。”
“没找点别的?”
雨晴想了想,说“暂时没有”。她没说网安公司的事,因为还没确定下来,只是在考虑。
苏晚没多问,吃完了面,把碗一推,说“我得走了,下节是班主任的课”。她站起来,拿起餐盘,又说“对了,你和听夏姐最近怎么样?”
“挺好。”
“你们是不是不住一起了?”
雨晴愣了一下,不知道苏晚怎么知道的。苏晚说“上次路过你那边,看到你一个人提着东西上楼”。雨晴“嗯”了一声,说“她搬到离学校近一点的地方了,方便上班”。
苏晚看了她一眼,没再问,摆了摆手,走了。
雨晴低头把饭吃完,收了餐盘,回教室午休。
下午的课她有点心不在焉,不是因为难,是因为脑子里一直在转那个offer的事。
昨天晚上的邮件还在她邮箱里躺着,她看了好几遍,每一个字都读过了,但就是有种不真实的感觉。一家做网络安全服务的公司,不知道从哪里看到了她在上次比赛里的表现,问她有没有兴趣做兼职——远程,按项目结,第一个项目是一个小企业的渗透测试,酬劳一千五。
一千五。
她在便利店站一百个小时才能赚到的钱。
她给王老师发过消息了,王老师说那家公司靠谱,之前问过他有没有推荐的人,他把雨晴的联系方式给了对方。雨晴当时回了个“谢谢王老师”,王老师说“别谢我,是你自己有本事”。
她有本事吗?她不知道。
她只知道自己在比赛里做出来的那几道题,后面反复看了好几遍,每一道都能讲出解法的逻辑。她也知道自己的基础和那些从小接触代码的人还有差距,很多技术点要现学,很多文档要硬啃。
但一千五是真的。
下午放学后,雨晴没直接回家。
五点二十的公交站挤满了学生,她选择骑车,慢悠悠地绕了一个弯,去了趟美宜佳。
周姐在收银台后面算账,听见门响抬头看了一眼,说“今天不是你的班”。雨晴说“我知道,路过进来看看”。周姐“嗯”了一声,继续算。
雨晴在店里走了一圈,帮周姐把货架上几个快空的商品往前摆。这是她在便利店养成的小习惯,看到不整齐的就忍不住想弄一下。周姐算完账,看着她,说“你帮我搬两箱水到仓库行吗”。雨晴说行。搬完水,周姐递给她一瓶冰红茶,说“拿着喝”。
雨晴接过来,没喝,握在手里,犹豫了一下。
“周姐,我以后可能要调整一下上班的时间。”
“怎么调整?”
“想减少一点工时,放学后可能没办法做太久了,周末还能正常上。”
周姐看了她一眼,问“找到别的活儿了?”
雨晴说“嗯,网上的,不用出门”。
周姐点了点头,说“行,你跟我说就行,排班我调整一下”。顿了一下,又说“别累着自己,你才多大”。
雨晴说了声“谢谢周姐”,骑着电动车走了。
到家的时候天还没黑。
橘子皮在门口等她,照例竖着尾巴,照例绕着她的脚转了两圈。雨晴换了鞋,把书包放下,先去给猫倒了粮。橘子皮闻到粮的味道,立刻从她脚边跑过去,把脸埋进碗里。
“你慢点吃。”雨晴说。
橘子皮没理她。
她坐到书桌前,打开笔记本。屏幕亮起来,她还是先看了那封邮件。
收件箱里安安静静地躺着它,标题是《网安兼职工作邀请》。她把邮件再次打开,从头到尾读了一遍,然后打开了合同的PDF。
合同不长,三页,列出了项目内容、交付标准、报酬和支付方式。她看得仔细,有些条款不太懂——比如“甲方拥有最终解释权”这种,之前在网上看到过,说是霸王条款,但也不知道能不能改。她截了图,给王老师发过去。
过了几分钟,王老师回了语音。雨晴没接,怕吵到邻居,听了语音转文字。
“那个不用太担心,小公司的合同都这样,他们不会坑你,我之前跟他们合作过几次,甲方挺靠谱的。你要是实在不放心,我可以帮你看看。”
雨晴回了个“好的”,又看了几遍合同,最后决定签。
她打开邮件,给对方回复:愿意接受,合同打印出来签好扫描发过去。
发完之后她坐在椅子上,盯着屏幕上“发送成功”的字样,心里说不上是紧张还是兴奋。橘子皮吃完了粮,跳上书桌,在她胳膊旁边蹲下来,开始舔爪子。
雨晴摸了摸它的脑袋,说“我要开始挣钱了”。
橘子皮“喵”了一声。
晚上雨晴煮了一碗挂面,打了个蛋,放了几片青菜。端到桌上吃的时候,她一边吃一边看手机。林听夏发了一条消息过来,问她“吃了吗”。她拍了张面的照片发过去,说“正在吃”。
林听夏回:“看着还行。”
雨晴:还行吧。
林听夏:明天我去你那边,有点东西要拿。
雨晴:好,我放学回来。
林听夏:嗯。
雨晴放下手机,把面吃完,洗了碗,又坐回到书桌前。
她打开邮箱,对方已经回了邮件,让她发一下地址,合同纸质版会寄一份过来。雨晴把地址发了过去,然后开始看第一个项目的资料。
项目是一个小型企业的渗透测试。对方发来了一部分公开信息,包括网站域名、几个IP地址、一些业务系统的简述。雨晴要做的就是从外部视角去测试这些系统的安全性,找出漏洞,写成报告。
她在比赛里做过类似的事,但那是虚拟靶场,环境和真实系统不一样。真实系统有真实的数据、真实的业务逻辑、真实的防护措施——更重要的是,做错了会有真实的后果。
雨晴把手放在键盘上,没动。
她想起王老师之前跟她说的那句话:“你要记住,在真实环境里,每一行命令都要想清楚。出了事不是扣分,是要负责任的。”
她把手收回来,先去看甲方提供的测试范围和授权书。
授权书写得很清楚,甲方授权她在指定时间段内对指定的目标系统进行渗透测试,不得攻击非授权目标,不得破坏数据,不得影响业务运行。雨晴看了两遍,把关键条款记下来,然后才开始搭测试环境。
晚上九点,她做完了初步的信息收集。对方的网站用的是开源CMS,版本不算太新,有几个已知漏洞。她记下来,打算明天再深挖。
合上笔记本,她伸了个懒腰。
窗外的路灯亮着,橘黄色的光透过窗帘缝隙落在床脚。橘子皮已经跳到床上,盘成一个圈,尾巴盖在鼻子上,睡得正香。
雨晴去洗了个澡,回来躺在床上,拿着手机翻了翻。
林听夏发的最后一条消息还是那个“嗯”。她在对话框停了停,打了一行字:“合同签了,下周开始做项目。”想了想,觉得没什么必要现在就发,删掉了。
她把手机放到枕头旁边,侧过身,看着窗帘上晃动的人影。那是窗外的树枝被风吹着,一晃一晃的,像是有人在招手。
雨晴闭上眼睛。
明天还要早起,第一节是语文课,要背《三峡》。她还没背熟,打算明天早读的时候再背。这么想着,她就翻了个身,拉上被子,把自己裹成一个卷。
橘子皮动了动,往她身边靠了靠。
她感觉到猫的体温隔着被子传过来,暖融融的。
慢慢地,她睡着了。
窗外风大了一些,树枝晃得更厉害了。路灯的光还是不紧不慢地亮着,照在空荡荡的马路上,照在一只蹲在路沿的野猫身上。
那只猫不是橘子皮。它更瘦,毛色更深,眼睛是琥珀色的,在黑暗里微微发着光。
它蹲了一会儿,站起来,无声无息地走远了。