有不少小伙伴面临跳槽或者找工作,本文总结了常见的安全岗位面试题,方便各位复习。祝各位事业顺利,财运亨通。在网络安全的道路上越走越远!
所有的资料都整理成了PDF,面试题和答案将会持续更新,因为无论如何也不可能覆盖所有的面试题。
php爆绝对路径方法?
单引号引起数据库报错访问错误参数或错误路径探针类文件如phpinfo扫描开发未删除的测试文件googlehackingphpmyadmin报路径:/phpmyadmin/libraries/lect_lang.lib.php利用漏洞读取配置文件找路径恶意使用网站功能,如本地图片读取功能读取不存在图片,上传点上传不能正常导入的文件
你常用的渗透工具有哪些,最常用的是哪个?
burp、nmap、sqlmap、awvs、蚁剑、冰蝎、dirsearch、御剑等等
xss盲打到内网服务器的利用
-
钓鱼管理员
-
信息收集
鱼叉式攻击和水坑攻击?
-
鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马
-
水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问
什么是虚拟机逃逸
利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的
中间人攻击?
原理:
在同一个局域网中,通过拦截正常的网络通信数据,并进行数据篡改和嗅探
防御:
-
在主机绑定网关MAC与IP地址为静态
-
在网关绑定主机MAC与IP地址
-
使用ARP防火墙
TCP三次握手过程?
-
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
-
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
-
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
七层模型?
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
对于云安全的理解
-
融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,
-
通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,
-
传送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端
了解过websocket吗?
-
WebSocket是一种在单个TCP连接上进行全双工通信的协议,
-
最大特点是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。
防止XSS,前端后端两个角度?
前端:
-
用户输入特殊字符过滤转义为html实体
-
用户输出编码
后端:
-
实体化编码
-
函数过滤
-
限制字符长度
如何防护一个端口的安全?
-
利用WAF、IDS、IPS等设备
-
危险服务端口禁止对外访问或限制IP访问
-
服务定期更新版本
DDOS是什么?有哪些?CC攻击是什么?区别是什么?
DDOS:
分布式拒绝服务攻击,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应主要方式:SYNFloodUDPFloodICMPFloodConnectionFloodHTTPGetUDPDNS Query Flood
CC攻击:
模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,网络拥塞
两者区别:
-
CC攻击网页,DDOS攻击服务器,更难防御
-
CC门槛较低,DDOS需要大量服务器
-
CC持续时间长,DDOS产生的影响大
land攻击是什么?
-
局域网拒绝服务攻击,DDOS攻击的一种,
-
通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪
你会如何进行信息收集?
-
服务器信息:ip、中间件、操作系统
-
域名whois、ipwhois、网段归属
-
子域名探测
-
网站目录扫描、接口信息扫描
-
端口扫描
-
各大引擎搜索相关信息
什么是CRLF注入攻击?
通过“回车”和“换行”字符注入HTTP流,实现网站篡改、跨站脚本、劫持等。
webshell检测思路?
-
静态检测:匹配特征码,特征值,危险函数
-
动态检测:WAF、IDS等设备
-
日志检测:通过IP访问规律,页面访问规律筛选
-
文件完整性监控
GPC是什么?开启了怎么绕过
GPC:
php.ini配置文件中的magic_quotes_gpc,实现为get、post、cookie传入的单引号、双引号、反斜线、NULL字符添加反斜线\
绕过:
-
PHP5的GPC对$_SERVER的忽略,可在http请求头注入
-
二次注入
-
宽字节注入
web常用的加密算法有什么
-
单向散列加密 MD5、SHA、MAC
-
对称加密 AES、DES
-
非对称加密 RSA、RSA2
XSS除了获取cookies还能做什么?
-
获取管理员ip
-
xss蠕虫
-
钓鱼攻击
-
前端JS挖矿
-
键盘记录
-
屏幕截图
运营商(或其他)网络劫持
-
运营商劫持:广告投放
-
DNS劫持:通过各种手段篡改DNS,劫持网络
DNS欺骗是什么
攻击者冒充域名服务器的一种欺骗行为
缓冲区溢出原理和防御
原理:
-
当写入缓冲区的数据量超过该缓冲区所能承受的最大限度时,
-
发生缓冲区溢出,溢出的数据被黑客加以利用,形成远程代码执行漏洞。
防御:
-
基于操作系统防御
-
缓冲区边界检查
-
安全编程
网络安全事件应急响应
-
断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹
-
取证:通过分析登录日志、网站日志、服务日志寻找黑客ip,查看黑客进行的操作
-
备份:备份服务器文件,对比入侵前后产生变化的文件
-
查漏:通过上述步骤寻找业务薄弱点,修补漏洞
-
杀毒:清除黑客留下的后门、webshell、管理账号
-
溯源:通过黑客ip地址,入侵手段等
-
记录:归档、预防
企业内部安全
-
实名制联网
-
重要网段隔离
-
禁止接入任何USB设备
-
禁用WIFI网络
-
IP与MAC地址绑定
-
部署网络监控、IDS、IPS设备
-
定期培训,提高员工安全意识
业务上线前,怎么测试,从哪些角度测试
-
安全测试:寻找产品漏洞,页面漏洞,服务漏洞,敏感信息泄露,逻辑漏洞,弱口令
-
性能测试:压力测试
-
功能完整性测试
应用有漏洞,但是无法修复和停用,你怎么办
-
限制IP白名单访问
-
使用WAF、IDS、防火墙设备
reverse_tcp 和 bind_tcp 的区别?
-
reverse_tcp:攻击机设置一个端口和IP,Payload在测试机执行连接攻击机IP的端口,这时如果在攻击机监听该端口会发现测试机已经连接
-
白话就是让受控机主动连接我们
-
bind_tcp:攻击机设置一个端口(LPORT),Payload在测试机执行打开该端口,以便攻击机可以接入
-
白话就是我们主动连接受控机
-
使用reverse_tcp较为安全,一般不会被防火墙发现
oauth认证过程中可能会出现什么问题,导致什么样的漏洞?
-
CSRF
-
redirect_uri校验不严格
-
错误的参数传递
CSRF怎么防护?
-
验证HTTP Referer字段
-
添加Token字段并验证
-
添加自定义字段并验证
主机疑似遭到入侵,要看哪里的日志
-
系统登录日志
-
服务访问日志
-
网站日志
-
数据库日志
python常用的标准库
-
正则表达式 re
-
时间模块 time
-
随机数 random
-
操作系统接口 os
-
科学计算 math
-
网络请求 urlib
-
http库 requests
-
爬虫库Scrapy
-
多线程库 threading
文件上传绕过方法?
WAF绕过:
-
修改上传表单字段
-
表单字段大小写替换
-
表单字段增加或减少空格
-
表单字段字符串拼接
-
构造双文件上传表单,同时上传双文件
-
编码绕过
-
垃圾数据填充绕过
-
文件名大小写绕过
服务器检测绕过:
-
MIME类型绕过
-
前端JS检测抓包改包绕过
-
黑名单绕过:php3、asa、ashx、windows特性(test.asp_、流特性)、apache解析漏洞
-
图片内容检测使用图片马绕过
-
.htassess绕过
白名单检测绕过:
-
截断上传绕过
-
IIS6/7/7.5解析漏洞,nginx低版本解析漏洞
-
文件包含绕过
验证码相关利用点
-
验证码复用
-
验证码可识别
-
验证码失效
-
验证码DDOS
cookie你会测试什么内容
-
sql注入
-
xss
-
权限绕过
-
敏感信息泄露
说出几个业务逻辑漏洞类型?
-
任意用户密码重置
-
短信轰炸
-
订单金额修改
-
忘记密码绕过
-
恶意刷票
-
验证码复用
简述文件包含漏洞
调用文件包含函数时,未严格限制文件名和路径,如include()、require()等函数
业务逻辑漏洞,用户任意密码重置有什么例子,因为什么因素导致的?
普通用户重置管理用户密码
渗透测试过程中发现一个只能上传zip文件的功能,有什么可能的思路?
-
shell压缩上传,程序自解压getshell
-
尝试解析漏洞getshell
-
寻找文件包含漏洞
-
木马钓鱼管理员
为什么aspx木马权限比asp大?
aspx使用的是.net技术,IIS中默认不支持,ASPX需要依赖于.netframework
存储型XSS危害:
-
窃取用户Cookie
-
XSS钓鱼攻击
-
XSS蠕虫攻击
-
获取键盘记录
-
获取用户信息
-
获取屏幕截图
只有一个登录页面有哪些思路?
-
SQL注入、万能密码
-
暴力破解
-
权限绕过
-
目录扫描
-
敏感信息泄露
算法?了解过什么排序?
冒泡排序
插入排序
选择排序
请求头中哪些是有危害的?
-
COOKIE注入
-
user-agent注入
-
X-Forwarded-For注入
-
Referer注入
谈谈水平/垂直/未授权越权访问的区别?
-
水平越权:普通用户越权访问普通用户
-
垂直越权:普通用户越权访问管理用户
-
未授权访问:权限控制不严,导致无需登录访问已登录用户页面
xss有什么?执行存储型的xss的危害和原理
-
存储型、反射型、DOM型
-
存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库
做了cdn的网站如何获取真实IP
-
全球ping
-
查询历史解析记录
-
探针文件如phpinfo等
-
利用命令执行连接我们的服务器或DNSlog
-
寻找网站配置
-
通过二级域名
-
全网扫描,title匹配
如何实现跨域?
-
jsonp
-
CORS跨域资源共享
-
代理跨域请求
-
Html5 postMessage 方法
-
修改 document.domain 跨子域
-
基于 Html5 websocket 协议
-
document.xxx + iframe
jsonp跨域与CORS跨域的区别?
-
jsonp浏览器支持较好,CORS不支持IE9及以下浏览器
-
jsonp只支持GET,CORS支持所有类型的HTTP请求
-
jsonp只发一次请求,复杂请求CORS发送两次
SSRF漏洞利用?
-
本地文件读取
-
服务探测、端口扫描
-
攻击内网redis、mysql、fastcgi等服务
-
利用到的协议有:http/s、file、gopher、tftp、dict、ssh、telnet
open_basedir访问目录限制绕过方法?
-
使用命令执行函数绕过
-
使用symlink()函数绕过
-
glob伪协议绕过
PHP代码审计中容易出问题的点?
-
参数拼接方式皆有可能产生SQL注入(老生常谈)
-
全局变量注册导致的变量覆盖
-
fwrite参数未过滤导致的代码执行
-
权限校验疏漏导致的后台功能访问
-
接口任意文件上传
-
unserialize反序列化漏洞
常见后门方式?
Windows:
-
注册表自启动
-
shift后门
-
远控软件
-
webshell
-
添加管理用户
-
影子用户
-
定时任务
-
dll劫持
-
注册表劫持
-
MBR后门
-
WMI后门
-
管理员密码记录
Linux:
-
SSH后门
-
SUID后门
-
Crontab计划任务
-
PAM后门
-
添加管理员账号
-
Rootkit
红蓝对抗中蓝队反杀红队场景和姿势?
钓鱼、蜜罐、蚁剑RCE
linux计划任务,黑客隐藏自己的计划任务会怎么做?
临时任务:at、batch命令
Redis未授权常见getshell的几种方式?
-
web绝对路径写shell
-
写入ssh公钥获取服务器权限
-
主从复制getshell
JWT的攻击手法?(头部、负载、签名)
-
加密算法置为空绕过身份验证
-
爆破弱密钥
-
kid参数:任意文件读取、SQL注入、命令注入
-
未校验签名,内容重新编码
JAVA中间件的漏洞,举几个例子?
-
JBoss反序列化
-
WebLogic反序列化
-
tomcat任意文件写入、弱口令+后台getshell
DNS外带可以用在哪些漏洞?
-
SQL盲注
-
无回显的命令执行
-
XXE盲打
-
SSRF盲打
HTTP-Only禁止的是JS读取cookie信息,如何绕过这个获取cookie
劫持登录页面钓鱼绕过
中间件漏洞总结?
这里只写常利用的漏洞
IIS:
-
IIS6.0 PUT漏洞
-
IIS6.0 远程代码执行漏洞
-
IIS6.0 解析漏洞
-
IIS启用.net 短文件名漏洞
-
IIS7.0/7.5 解析漏洞
Apache:
-
未知扩展名解析漏洞
-
配合错误导致的解析漏洞、目录遍历
Nginx:
配置错误导致的解析漏洞、目录遍历
Tamcat:
-
配置错误导致的任意代码执行、任意文件写入漏洞
-
弱口令+管理后台war包部署getshell
-
manager/html 管理后台弱口令爆破
JBoss:
5.x/6.x反序列化漏洞(CVE-2017-12149)JMXInvokerServlet反序列化EJBInvokerServlet反序列化JMXConsole未授权访问弱口令+管理后台war包部署getshell
WebLogic:
XMLDecoder反序列化漏洞(CVE-2017-10271 & CVE-2017-3506)wls9_async_response,wls-wsat反序列化远程代码执行漏洞(CVE-2019-2725)WLSCore Components 反序列化命令执行漏洞(CVE-2018-2628)弱口令+管理后台war包部署getshell
python有哪些框架,其中出现过哪些漏洞
-
Django、Flask、Scrapy
-
Django任意代码执行
-
Flask模板注入
小程序的渗透和普通渗透的差异
-
渗透过程不变,依旧是抓包修改参数渗透
-
不同点是小程序会将包下载到本地,可以使用逆向还原工具反编译
谈一谈Windows系统与Linux系统提权的思路?
Windows:
-
数据库提权:mysql、sqlserver
-
第三方软件提权:serv-u
-
DLL劫持
-
系统内核溢出漏洞提权:cve系列
Linux:
-
sudo提权
-
suid提权
-
redis
-
内核提权
app本身的漏洞测试 四大组件
Activity组件:
-
activity绑定browserable与自定义协议
-
ActivityManager漏洞
Service组件:
权限提升,拒绝服务攻击
Broadcast Receiver组件:
-
权限管理不当
-
BroadcastReceiver导出漏洞
-
动态注册广播组件暴露漏洞
Content Provider组件:
读写权限漏洞ContentProvider中的SQL注入漏洞Provider文件目录遍历漏洞
IDS/IPS防护原理及绕过思路
原理:
-
IDS工作在网络层,旁路部署,通过抓取和分析网络流量来发现攻击
-
IPS一般也是在网络层旁路,可以理解为具备阻断能力的IDS,是IDS的升级版(也有IDS检测到攻击通知阻断设备执行阻断动作的设备联动模式),可以覆盖网络层和应用层
绕过:
-
TCP分片:拆分出两个TCP包
-
IP分片:原理同TCP分片,但是丢包严重
-
程序bug/性能问题:发送大量无效包,消耗IPS性能
-
伪造TCP状态:绕过基于状态追踪的IPS
-
IPV6绕过:使用IPV6地址绕过
json的csrf的利用
使用XMLHttpRequest、fetch构造出JSON请求,利用Flash的跨域与307跳转来绕过http自定义头限制
json格式的数据包可以测哪些漏洞
-
csrf
-
json劫持
-
xss
简述xxe漏洞原理与利用方式
原理:
XML外部实体注入,在应用程序解析XML输入时,当允许引用外部实体时,可构造恶意内容,产生漏洞
利用:
-
DTD Document Type Definition
-
DTD 内部声明
-
<!DOCTYPE 根元素 [元素声明]>
-
DTD 外部引用
-
<!DOCTYPE 根元素名称 SYSTEM “外部DTD的URI”>
-
引用公共DTD
-
<!DOCTYPE 根元素名称 PUBLIC “DTD标识名” “公用DTD的URI”>
内网服务器,如何进行信息收集?
-
使用脚本收集:端口信息、服务信息
-
系统命令收集:域内用户可使用域命令收集域信息,net group"domain users" /domain等
-
端口扫描工具全段扫描
-
本机信息收集:管理密码、登录日志看管理员ip、服务密码收集、网段信息查看、历史记录查看
-
内网DNS域传送漏洞
如果拿下了内网边界层的某一个机器,如何对内网其他进行探测?
-
首先使用代理进入内网reg、ew等
-
第二在本机进行信息收集,包括管理员ip、端口服务、账号密码、路由信息、网段信息等
-
第三扩展到收集到的网段进行渗透,利用常用服务:SMB、MYSQL、SQLserver、ftp、telnet等
-
借助轻量化脚本或扫描器扫描,但一般不这么做,动静太大容易被管理员发现
内网黄金票据、白银票据的区别和利用方式
黄金票据:
一旦攻击者拥有管理员访问域控制器的权限,就可以使用Mimikatz来提取KRBTGT帐户密码哈希值。
生成票据
kerberos::golden /admin:Administrator /domain:CTU.DOMAIN /sid:S-1-1-12-123456789-1234567890-123456789 /krbtgt:deadbeefboobbabe003133700009999 /ticket:Administrator.kiribi
/admin:伪造的用户名
/domain:域名称
/sid:SID值,注意是去掉最后一个-后面的值
/krbtgt:krbtgt的HASH值
/ticket:生成的票据名称 //不是写入内存中的命令!
普通域账户,利用黄金票据,创建域管账户
-
mimikatz # kerberos::purge
-
mimikatz # kerberos::ptt Administrator.kiribi //票据导入内存
此时域管账号创建成功
白银票据:
-
获取SID和NTLM
-
mimikatz.exe "privilege::debug""sekurlsa::logonpasswords""exit">log.txt
金票银票区别:
-
获取的权限不同
-
金票:伪造的TGT,可以获取任意Kerberos的访问权限
-
银票:伪造的ST,只能访问指定的服务,如CIFS
-
认证流程不同
-
金票:同KDC交互,但不同AS交互
-
银票:不同KDC交互,直接访问Server
-
加密方式不同
-
金票:由krbtgt NTLM Hash 加密
-
银票:由服务账号 NTLM Hash 加密
代码解释
由于文章字数限制,就不一一展现
敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【网络安全】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个网络安全工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取