2013阿里巴巴实习生招聘笔试小结

风凉话就不多说了,毕竟节操还是很重要滴!

笔试题是每个职位单独出卷,题目与对应职位联系十分密切。就我今天做得卷子来说,最基础的数据结构、算法和操作系统一道题都没考,全是网络安全相关的基础题目。貌似从今年开始大公司都是分开职位出卷了,这对我这种菜鸟可以说是一种无形的帮助吧,毕竟让我去考算法和数据结构,基本写个名字就可以GG了。

我选择的职位是“安全工程师”,据我的了解今年是阿里巴巴第一年有这个职位的招聘(以往内推的就不知道了)。所以之前在网上没有找到任何跟这个职位笔试的资料,只能找了份研发工程师的练了练手,结果被虐出翔了= =

使了点小手段,把整份卷子的题目基本都记下来了,所以说我这篇文章对于下一年的人来说还是很有参考意义的哦~

今天的卷子一共6张A4纸(还有一页空白不知道干嘛的- -),类型一共三类:名词解释,问答题,代码题,考试时间60 min(其他职位起码90 min,坑了)。题量略多啊,我也是刚刚好把所有题目都答上去了,很多地方根本就没来得及认真思考和修改。

(吐槽一下,整份卷子没有一道选择题,结果每人发了张答题卡!有点浪费的说。。)

废话不多说了,开始进入正题吧。

名词解释一共5个,webshell,CSRF,溢出,CC攻击,网络钓鱼。我个人是比较怕这类题的,因为“词”肯定知道是什么意思,但是要我表达出来还真挺难的。这里没什么好说的,直接百度百科吧,把内容都背下来。。CC攻击、CSRF之前都在blog里面写过,所以印象挺深的,其它就勉强写了写,目测阅卷人看不懂= =

然后是问答题,第一题是问你“平时获取安全技术的渠道有哪些(书籍、网站)”。这种开放性的题目,大家怎么答都行。书籍我写了刺总的《白帽子讲web安全》(填这个能加分么- -!)和余弦的《Web前端黑客技术揭秘》,还有黑防和黑X;网站写了各大牛的新浪微博,wooyun,还有核总的lcx.cc 。感觉这是整份卷子最有把握的题目了0 0

第二题问“你当前在安全技术领域的研究方向”,这个感觉有点不好答,因为如果有面试的话,你写多少肯定就问你多少!我好像是写了WEB端的渗透测试,sql注入,xss,csrf啥的,略虚啊。

然后就开始问技术问题了。“Linux下,-rwsr-xr-x的含义是什么”,这个题有玩过Linux的基本都能答上,唯一有点难的就是那个“s”了。这里“s”的意思是,当前用户执行这个文件,能够暂时具有该程序拥有者的权限。好吧我跪在这个s上了- -

之后是让讲述DLL劫持的基本原理。之前玩过lpk.dll,所以对这块还是稍微有点了解的。简单来说,win在执行exe需要调用系统DLL时候,会优先查找当前目录下是否有所需的DLL文件,没有找到才会去环境变量提供的目录下继续寻找。利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统DLL被劫持(hijack)了。

下一个问题有点难懂,如何伪造发件人发送欺诈邮件?!一直没想到,最后草草写了个“社工”就算了 。。回来百度一搜,看来自己还是太菜了,连这么经典的一个利用都不知道。简单来说,就是把你的发信请求发到一个不需要验证发件人的smtp服务器。这样做成功伪造了发件人,不过看邮件头还是可以知道这是伪造的。(参考lake2大牛06年写的文章:伪造发件人邮件地址

接着问你VLAN中能不能实现IP欺骗?能就给出方案,不能说明理由。这个题是真不懂了,网上搜了下好像也没找到答案。求懂原理的大牛来解答!

下一题还是计算机网络,说出router\switch\hub的区别。这个答案貌似有点长呢,不想打了,这个自行百度吧,或者去翻下计网书(计算机网络低空飘过的表示无力。。。)

第八题问有一台WEB应用的linux主机被入侵,你会如何处理这件事?写出你的排查顺序。表示这块经验略有点不足,就只能说出两点,一是看Web日志,二是看端口流量,木有了 ... T_T

最后一个问答题是关于密码算法的,说出常见的密码算法的优缺点和它们使用场景。这个貌似能说的特别多,什么DES、AES、RSA、各种Hash等等。

第三大部分是代码题,具体是给你一段代码,让你分析其中的安全问题,并提出修正方法。由于具体代码忘记了,所以我只能很主观的去介绍问题了。

第一题的代码应该是jsp吧(没玩过,我猜的- -),意思是从请求中获取pdf_file参数,然后download("/xxx/pdf/"+pdf_file)。这个我想到的是服务器任意文件下载(权限允许的前提下),修复应该就是执行函数前过滤一下敏感字符吧。。

第二题php,从cookie中获取uid这个值,然后update(uid , $_POST['email'])。问题一是通过修改cookie的uid值修改任意用户的email地址,二是email的内容没有验证。修复方法可以在update前验证当前用户身份,email加个re判断。

第三题一段jsp+html,get参数msg,然后判断msg中是否有“<”“>”,有就报错,没有则执行println("")。这个应该是想考XSS吧,不过我没能把如何弹窗的代码写出来,只能随便扯了。修复方法是不是构造更变态的过滤- -

第四题是C语言,代码大概如下:

void test(char * OldName){
  char[30] NewName;
  int len=0;
  for(;OldName[len] != '\0';len++){

     NewName[len] = OldName[len]; 

  }
  return;
}

问题应该就是没有判断OldName的长度,大于30就溢出了。修复加个长度判断就好。

最后一题php+sql,$_POST两个参数username和pw,然后带入sql语句:

$sql = "select (*) from users where username = '".username."' and pw = '".pw."' limit 1";

$result = mysql_query($sql);

这里一开始我想的是进行注入,不过好像只返回一个值给result,应该是做登录判断的。后来就想到了闭合单引号,直接让sql返回1,具体是什么不太清楚0 0

卷子的最后还有两道调研题,就是问你对卷子的难度的评价和时间是否充足,以及是否有什么建议。

至此整份卷子就讲完了。总的来说收获还是很丰富的,每一次笔试都是一次学习的过程,让我认识到自己的不足,看来以后还是要多多学习基础的东西啊~

最后感谢阿里巴巴给我这次笔试的机会~

« 返回