前言
一年春好处,2021写下了这篇文章。
本文适合毕业生找工作,也适合从业者跳槽选下家,更适合面试官选面试题。
甲方,乙方offer拿过很多,分享一下我的经验。
选择
公司分甲方跟乙方,同时还分大公司和小公司。
做过管理的应该知道,团队管理大公司靠管理,小公司靠感情。
大部分人,很多时候不是你选公司,而是公司选你,所以这里也不多bb了。
现在的安全岗位,作为全栈工程师的我们往往也会经历,面试拧螺丝,工作造飞机的尴尬局面。
所以从技术面试来说,面试的问题需要多角度,多方面来考察我们的应聘者。
当然那些招驻场,随便问问的面试,当我没说。
最重要的一点就是,人品,很重要。
面试中自我介绍
无论是哪种面试,第一个肯定是自我介绍。一个优秀的面试官,应该能从应聘者的自我介绍中,判断出这个人的基本层次定位和价值。
如何自我介绍。
直接给个万能公式:
在xx安全论坛投稿过xx篇文章,获得xx元稿费。
在xx众测,提交过xx漏洞,获得过xx元奖金。
有x年以上的Web/App漏洞挖掘、业务逻辑漏洞挖掘经验。
精通xx,xx,xx语言,能独立开发poc和exp。
获取xx张CNVD证书 和 xx CVE编号。
在xx安全会议上进行过xx演讲。
如果问你离职原因:可以回答在公司个人发展受限,别整出“公司不被允许员工过年回家”的烂借口。
精选面试题
问:
攻防实战中有哪些优秀案例
答:
红队:参加xxx第x,xxx第x,xxx第x
主要做的是:外网打点,扩大资产,上免杀,横向=》vlan内网、域控组策略gpo。(这里简单给几个关键词)
蓝队:参加xxx
主要做的是:
1.反打扫描IP,分析肉鸡,找攻击者的利用工具,配置文件,连接ip
2.微步查询得到该IP,找到注册人邮箱,利用邮箱社工
3.蜜罐,通过跟厂家的蜜罐设备捕捉的指纹,来找到社交id
4.溯源钓鱼邮件,分析附件木马回连地址,邮件头找到真实发件人,利用邮件信息及id去社工,寻找博客,企业信息,社交信息等
获取id之后,百度,谷歌,src,微博,微信,支付宝,豆瓣,贴吧,知乎,脉脉,钉钉,CSDN,facebook,领英,github等进行查询绘制攻击者画像
问:
挖过SRC吗
答:
挖过,很早之前在乌云提交过xx漏洞,在补天,漏洞盒子都有熟人,先知众测,360众测等各种众测获得过xx现金。
问:
写过工具吗,熟悉什么语言
答:
python java go ruby...
具体看个人github(别回答没传过github、码云之类的低级借口,low到爆炸)
问:
xss攻击方式和防护
答:
反射XSS攻击、DOM型XSS攻击、储存型XSS
防护
1)httpOnly 防止读cookie
2)实体化编码输出
问:
sql注入原理,类型,防护方式
答:
把用户输入的数据当作代码来执行、联合注入 布尔盲注 时间型盲注 报错注入 宽字节注入等
防护方式:
1)设备方式:增加waf,cdn等
2)代码方式:一般推荐用框架,比如mybatis中使用 %获取参数是直接进行拼接 #获取参数是进行预编译
问:
渗透测试流程
答:
1) 确定资产范围
ip、域名、内外网、测试账户,客户的需求,比如需要拿到内网的权限,有些客户不允许进内网
2) 信息收集
利用搜索引擎开放搜索,各种工具探测子域名、端口、应用、指纹、操作系统、版本、中间件、人员信息、waf等
3)漏洞探测
对目标的端口,web服务进行目录扫描,探测poc、常规的checklist逻辑漏洞测试
4) 绕waf
绕waf进行漏洞利用( 1 注释替换空格 2 字符集绕过3 chunked绕过4 上传请求 multipart 绕过 5.参数污染 6.垃圾数据污染)
5)内网入侵,横向敏感目标,清理痕迹
6)提权
windows:1.systminfo根据系统补丁提权 2.第三方服务提权 3.数据库提权
linux:1.利用系统内核漏洞进行提权 2.泄漏密码提权 3.sudo提权 4.SUID提权
问:
app安全测试怎么做
答:
安卓:drozer审计安卓app adb来操作drozer,四大组件 Activity、Service、Broadcast Receiver、Content Provider
反编译:如果加固可以尝试用github上的frida-dexdump脱壳
防御机制:信任证书即可,APK的安全机制,自签名证书(Xposed - JustTrustMe,SSLUnPinning),用proxifier代理工具。Hook技术(只需要Hook 证书校验失败的处理方法,让其继续加载页面并保持通讯即可。)
客户端内置代理,hook "system.setproperty" 设置代理到本地,客户端检测是否开启代理(修改smail代码绕过,或者nop掉检测方法。)
双向认证绕过:做了双向验证的apk,反编译后在APK的 assets 中就可以找到客户端证书 .p12 和.cer 的文件,导入时会需要一个证书密码,一般可以通过静态分析代码,搜索 KeyStore 或者 逆向分析客户端的.p12 来找到密码。
答到上面几个点就够了
问:
iot安全测试怎么做
答:
一般测试wireshack抓包
从硬件体系、软件结构、通信协议来看。
常见漏洞:后门,硬编码、逆向固件(官方下载)
问:
如果让你设计开发一款漏扫工具,你会如何设计开发
答:
一般使用框架来开发代码:
前端用Vue
后端用SpringBoot
子域名扫描调用oneforall
端口服务扫描调用nmap(精准识别)、masscan(快速识别)
判断ip数据库及CDN、waf放弃自动化扫描,仅做URL可用收集
驱动浏览器爬虫采集数据:crawlergo
被动漏洞扫描:针对域名进行扫描,直接调用 xray 、awvs、w13scan 等进行漏扫
问:
在实际攻防中,蜜罐越来越多,详细聊聊你对蜜罐的认知。
答:
Github上有很多Python版蜜罐Opencanary的二次开发源码。
蜜罐刻画的黑客肖像主要原理是使用众多的jsonp接口来获取攻击者的信息。
最方便的就是直接购买安全厂家的蜜罐,依赖厂家的资源来识别攻击者。
问:
应急响应怎么策划,怎么做?
答:
主要遵守应急响应PDCERF模型
Prepare(准备)
Detection(检测):
紧急事件监测:包括防火墙、系统、web服务器、IDS/WAF/SIEM中的日志,不正常或者是执行了越权操作的用户,甚至还有管理员的报告
Containment(抑制):
首先先控制受害范围,不要让攻击的影响继续蔓延到其他的IT资产和业务环境,切记不要直接一股脑的投入全部精力到封堵后门。紧接着要做的是去寻找根源原因,彻底解决,封堵攻击源,把业务恢复到更张水平
Eradication(根除)
Recover(恢复)
Follow-Up(跟踪)
主机被入侵
优先提取易消失的数据
内存信息 free -m `htop
系统进程 ps top netstat ss
路由信息 tracert
ifconfig查看网卡流量,检查网卡的发送、接收数据情况
NetHogs实时监控带宽占用状况
查看Linux系统日志 /var/log
ClamAV杀毒软件
问:
PHP代码审计,你是如何审计的,说说你比较熟悉的函数。
答:
代码审计方式,分3种。
1.全文通读
2.业务功能点
3.工具扫描复验
PHP中:
1)代码执行:
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
2)文件读取:
file_get_contents(),highlight_file(),fopen(),read
file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
3)命令执行:
system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
问:
如何绕过waf?
答:
大小写转换法
干扰字符 /!/
编码 base64 unicode hex url ascll
复参数
分块传输
问:
容器安全有了解吗?
答:
探测是否为容器环境
如/.dockerenv是否存在
(1)dockerfile泄漏
dockerfile指定user
dockerfile存储了固定密钥对外发布
dockerfile服务攻击面(ssh,telnet)
(2)供应链攻击
镜像漏洞、恶意后门、镜像仓库
(3)隔离问题
容器隔离问题,共同挂载的文件系统
(4)容器逃逸
共享操作系统内核,不允许采用特权模式运行
结尾
随着时间的推移,想做的事情越来越多,此篇文章将是我最后一篇面试系列文章,我的github是:https://github.com/tangxiaofeng7
欢迎志同道者交流。