综合启明星辰多年招聘渗透测试工程师的经验,发现有很多面试者喜欢说没接触过这个没接触过那个,都没接触过为什么要来面试,录取你的理由是什么?在面试中真遇到你不懂的技术问题,千万不要说没接触过,你可以说一些和这个技术相近的东西,真的什么都想不到的话,说暂时想不起来了,千万不要表现出你什么都不会的样子,因为这样就算面试官不说什么你也自己先把自己给否掉了,这是很忌讳的。自己都觉得自己不行,那就是不行。只要你有自信觉得自己可以,什么都可以再去学!这种学习效率往往也很高,所以说自信是作为一个技术人应该具备的素质。
下面就比较常见的面试问题做下分享。
一、拿到一个待检测的站,应该先做什么?(渗透思路/流程)
1、信息收集
1)获取域名的whois信息,获取注册者邮箱姓名电话等。
2)查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3)查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4)查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
5)扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
6)google hack 进一步探测网站的信息,后台,敏感文件
2、漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,
远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
3、漏洞利用
利用以上的方式拿到webshell,或者其他权限
4、权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
5、日志清理
6、总结报告及修复方案
二、nmap扫描端口用什么命令?
-p 加端口号或1-65535
拓展:nmap端口扫描参数
-sS (TCP SYN扫描)
-sT (TCP connect()扫描)
-sU (UDP扫描)
-sV (版本探测)
-O (启用操作系统检测)
-f (报文分段); --mtu (使用指定的MTU)
-D
-S
三、常见的网站服务器容器
IIS、Apache、nginx、Lighttpd、Tomcat
四、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。
修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。
修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。
修复方式:XML解析库在调用时严格禁止对外部实体的解析。
五、sql注入原理、攻击手法?
原理:SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对WEB服务器进行攻击的方法。简单的说就是在post/getweb表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程。
攻击手法:基于布尔的盲注、基于时间的盲注、联合查询注入、基于错误信息的注入
六、其他一些问题
以前挖过哪些网站的漏洞。
说几个你比较常用的工具。
文件上传漏洞的绕过方法有哪些。
如果网站有CDN,你如何查看他的真实IP地址。
绕WAF可以尝试哪些手段。
说几个你熟悉的存在漏洞的中间件。
说几个php里面可以执行命令的函数。
做过免杀吗,现在主要的免杀手段是什么。
常见提权方式?
后渗透怎么做权限维持?讲一下后渗透。
编程语言会哪些?
如何查看内网域名。
内网扫描到445端口测什么漏洞?
有哪些上传绕过的方式?
抓包怎么区分包头,包体,正文?
说一下你最难忘的挖洞经历。
你参加过哪些项目。