-
在智联招聘上进行信息沟通,随后一天便接到了电话面试(由技术总监 call 的),沟通了大概十分钟左右,就预约了后续的第一次面试。期间询问了 SQL 注入的防御策略、XSS 攻击的类型区分以及一些在校参与网络安全实践项目的经历。(这些在网络安全专业课程里都有涉及) -
第一次面试,真的超乎我想象,居然持续了近四个小时。一到公司,就拿到了三张试卷,要求在一小时二十分钟内完成。时间过去挺久了,有些细节记得不太真切。第一部分主要考查网络通信原理,像 HTTP/HTTPS 协议的区别、工作过程,还有 DNS 解析的流程,以及如果网络出现 DNS 劫持该怎么解决等问题。第二部分编程考的是 Python,给了一段十二行左右的代码,要求找出代码中的安全隐患并给出改进方案,比如代码中可能存在的弱密码、未加密传输等问题。对于有一定 Python 基础的人,系统学习一周左右,做些实践练习,难度不算大。剩下的大部分题目都是课程里反复讲解的安全问题,SQL 注入和 XSS 依然是重点,不仅要阐述原理和预防方法,还得结合实际案例说明。另外,还考到了 Android 系统的权限管理漏洞,以及业务逻辑层面的支付漏洞,这个支付漏洞问题挺意外的,还好我之前在技术交流群里看到过相关讨论,就把常见的支付流程漏洞和应对方法写了上去。真的很久没有写这么多内容了。
大概等了一天时间,收到了复试的邀请,面试我的是两位技术副总、一位安全部门负责人和一位行政经理。
- 复试的当天下午就接到了通过的电话,告知可以办理入职了,电话里大概介绍了工资构成和后续流程,我和 HR 加了微信。本以为一切顺利,没想到还是出了状况。入职体检非常严格,我们统一去指定的三甲医院进行体检,体检费用公司承担。之后我收到通知,体检报告中某项血液指标异常,血脂偏高。最后 HR 让我去复查,复查的时候有专人陪同去指定的医院进行详细检查,我检查了血脂全套等项目,等了一天结果终于合格了。推测可能是前段时间经常熬夜备考,饮食油腻导致的。随后拿着复查报告才进入入职审批环节,没错,依旧是审批。
下面分享一下遇到过的面试题,希望能够帮到大家。
答:XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用 HTTP Only 来禁 JavaScript 读取 Cookie 值、输入时校验、浏览器与 Web 应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS 是实现 CSRF 的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范 CSRF 的页面然后嵌入Token、再次输入密码、检验 Referer。
XXE是XML 外部实体注入攻击,XML 中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML 解析库在调用时严格禁止对外部实体的解析。
a、信息收集
1、获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。
2、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如rsync,心脏出血,mysql,ftp,ssh弱口令等。
5、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
6、google hack进一步探测网站的信息,后台,敏感文件
b、漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
c、漏洞利用
利用以上的方式拿到webshell,或者其他权限
d、权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6, pr, 巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
e、日志清理
f、总结报告及修复方案
a、IIS 6.0
/xx.asp/xx.jpg "xx.asp"是文件夹名
b、IIS 7.0/7.5
默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
c、Nginx
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。空字节代码
xxx.jpg.php
d、Apache上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。
在登录后才可以访问的文件中插入XSS脚本。
隐藏文件夹,为了不让管理员发现你传上去的工具。
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入WebShell使用sqlmap –os-shell原理和上面一种相同,来直接获得一个Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传Shell。
原文始发于微信公众号(安全君呀):面试惊魂!四个小时网络安全面试,你能撑住吗?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论