新的一年,难免有不少小伙伴面临跳槽或者找工作,本文总结了常见的安全岗位面试题,方便各位复习。祝各位事业顺利,财运亨通。
单引号引起数据库报错
访问错误参数或错误路径
探针类文件如phpinfo
扫描开发未删除的测试文件
google hacking
phpmyadmin报路径:/phpmyadmin/libraries/lect_lang.lib.php
利用漏洞读取配置文件找路径
恶意使用网站功能,如本地图片读取功能读取不存在图片,上传点上传不能正常导入的文件
burp、nmap、sqlmap、awvs、蚁剑、冰蝎、dirsearch、御剑等等
钓鱼管理员
信息收集
鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马
水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问
利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的
原理:
在同一个局域网中,通过拦截正常的网络通信数据,并进行数据篡改和嗅探
防御:
在主机绑定网关MAC与IP地址为静态
在网关绑定主机MAC与IP地址
使用ARP防火墙
第一次握手:建立连接时,客户端发送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是一种在单个TCP连接上进行全双工通信的协议,最大特点是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。
DDOS:
分布式拒绝服务攻击,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应
主要方式:
SYN Flood
UDP Flood
ICMP Flood
Connection Flood
HTTP Get
UDP DNS Query Flood
CC攻击:
模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,网络拥塞
两者区别:
CC攻击网页,DDOS攻击服务器,更难防御
CC门槛较低,DDOS需要大量服务器
CC持续时间长,DDOS产生的影响大
局域网拒绝服务攻击,DDOS攻击的一种,通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪
服务器信息:ip、中间件、操作系统
域名whois、ipwhois、网段归属
子域名探测
网站目录扫描、接口信息扫描
端口扫描
各大引擎搜索相关信息
通过“回车”和“换行”字符注入HTTP流,实现网站篡改、跨站脚本、劫持等。
前端:
用户输入特殊字符过滤转义为html实体
用户输出编码
后端:
实体化编码
函数过滤
限制字符长度
利用WAF、IDS、IPS等设备
危险服务端口禁止对外访问或限制IP访问
服务定期更新版本
静态检测:匹配特征码,特征值,危险函数
动态检测:WAF、IDS等设备
日志检测:通过IP访问规律,页面访问规律筛选
文件完整性监控
https://mp.weixin.qq.com/s/5XV984kErF2Zhh-P5aoUwQ
https://mp.weixin.qq.com/s/frwK49IatUqUoT-4DR08GQ
GPC:
php.ini配置文件中的magic_quotes_gpc,实现为get、post、cookie传入的单引号、双引号、反斜线、NULL字符添加反斜线
绕过:
PHP5的GPC对$_SERVER的忽略,可在http请求头注入
二次注入
宽字节注入
单向散列加密 MD5、SHA、MAC
对称加密 AES、DES
非对称加密 RSA、RSA2
获取管理员ip
xss蠕虫
钓鱼攻击
前端JSku
键盘记录
屏幕截图
运营商劫持:广告投放
DNS劫持:通过各种手段篡改DNS,劫持网络
攻击者冒充域名服务器的一种欺骗行为
原理:
当写入缓冲区的数据量超过该缓冲区所能承受的最大限度时,发生缓冲区溢出,溢出的数据被黑客加以利用,形成远程代码执行漏洞。
防御:
基于操作系统防御
缓冲区边界检查
安全编程
断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹
取证:通过分析登录日志、网站日志、服务日志寻找黑客ip,查看黑客进行的操作
备份:备份服务器文件,对比入侵前后产生变化的文件
查漏:通过上述步骤寻找业务薄弱点,修补漏洞
杀毒:清除黑客留下的后门、webshell、管理账号
溯源:通过黑客ip地址,入侵手段等
记录:归档、预防
实名制联网
重要网段隔离
禁止接入任何USB设备
禁用WIFI网络
IP与MAC地址绑定
部署网络监控、IDS、IPS设备
定期培训,提高员工安全意识
安全测试:寻找产品漏洞,页面漏洞,服务漏洞,敏感信息泄露,逻辑漏洞,弱口令
性能测试:压力测试
功能完整性测试
限制IP白名单访问
使用WAF、IDS、防火墙设备
验证HTTP Referer字段
添加Token字段并验证
添加自定义字段并验证
WAF绕过:
修改上传表单字段
表单字段大小写替换
表单字段增加或减少空格
表单字段字符串拼接
构造双文件上传表单,同时上传双文件
编码绕过
垃圾数据填充绕过
文件名大小写绕过
服务器检测绕过:
MIME类型绕过
前端JS检测抓包改包绕过
黑名单绕过:php3、asa、ashx、windows特性(test.asp_、流特性)、apache解析漏洞
图片内容检测使用图片马绕过
.htassess绕过
白名单检测绕过:
截断上传绕过
IIS6/7/7.5解析漏洞,nginx低版本解析漏洞
文件包含绕过
验证码复用
验证码可识别
验证码失效
验证码DDOS
sql注入
xss
权限绕过
敏感信息泄露
任意用户密码重置
短信轰炸
订单金额修改
忘记密码绕过
恶意刷票
验证码复用
调用文件包含函数时,未严格限制文件名和路径,如include()、require()等函数
普通用户重置管理用户密码
普通用户重置普通用户密码
未设置用户唯一Token,导致越权
shell压缩上传,程序自解压getshell
尝试解析漏洞getshell
寻找文件包含漏洞
木马钓鱼管理员
aspx使用的是.net技术,IIS中默认不支持,ASPX需要依赖于.net framework,ASP只是脚本语言
入侵的时候asp的木马一般是guest权限APSX的木马一般是users权限
SQL注入、万能密码
暴力破解
权限绕过
目录扫描
敏感信息泄露
COOKIE注入
user-agent注入
X-Forwarded-For注入
Referer注入
水平越权:普通用户越权访问普通用户
垂直越权:普通用户越权访问管理用户
未授权访问:权限控制不严,导致无需登录访问已登录用户页面
存储型、反射型、DOM型
存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库
存储型XSS危害:
窃取用户Cookie
XSS钓鱼攻击
XSS蠕虫攻击
获取键盘记录
获取用户信息
获取屏幕截图
系统登录日志
服务访问日志
网站日志
数据库日志
正则表达式 re
时间模块 time
随机数 random
操作系统接口 os
科学计算 math
网络请求 urlib
http库 requests
爬虫库 Scrapy
多线程库 threading
reverse_tcp:攻击机设置一个端口和IP,Payload在测试机执行连接攻击机IP的端口,这时如果在攻击机监听该端口会发现测试机已经连接
白话就是让受控机主动连接我们
bind_tcp:攻击机设置一个端口(LPORT),Payload在测试机执行打开该端口,以便攻击机可以接入
白话就是我们主动连接受控机
使用reverse_tcp较为安全,一般不会被防火墙发现
CSRF
redirect_uri校验不严格
错误的参数传递
全球ping
查询历史解析记录
探针文件如phpinfo等
利用命令执行连接我们的服务器或DNSlog
寻找网站配置
通过二级域名
全网扫描,title匹配
jsonp
CORS跨域资源共享
代理跨域请求
Html5 postMessage 方法
修改 document.domain 跨子域
基于 Html5 websocket 协议
document.xxx + iframe
jsonp浏览器支持较好,CORS不支持IE9及以下浏览器
jsonp只支持GET,CORS支持所有类型的HTTP请求
jsonp只发一次请求,复杂请求CORS发送两次
冒泡排序
选择排序
插入排序
本地文件读取
服务探测、端口扫描
攻击内网redis、mysql、fastcgi等服务
利用到的协议有:http/s、file、gopher、tftp、dict、ssh、telnet
Windows:
注册表自启动
shift后门
远控软件
webshell
添加管理用户
影子用户
定时任务
dll劫持
注册表劫持
MBR后门
WMI后门
管理员密码记录
Linux:
SSH后门
SUID后门
Crontab计划任务
PAM后门
添加管理员账号
Rootkit
使用命令执行函数绕过
使用symlink()函数绕过
glob伪协议绕过
参数拼接方式皆有可能产生SQL注入(老生常谈)
全局变量注册导致的变量覆盖
fwrite参数未过滤导致的代码执行
权限校验疏漏导致的后台功能访问
接口任意文件上传
unserialize反序列化漏洞
钓鱼、蜜罐、蚁剑RCE
临时任务:at、batch命令
web绝对路径写shell
写入ssh公钥获取服务器权限
主从复制getshell
加密算法置为空绕过身份验证
爆破弱密钥
kid参数:任意文件读取、SQL注入、命令注入
未校验签名,内容重新编码
JBoss反序列化
WebLogic反序列化
tomcat任意文件写入、弱口令+后台getshell
SQL盲注
无回显的命令执行
XXE盲打
SSRF盲打
劫持登录页面钓鱼绕过
这里只写常利用的漏洞
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反序列化
JMX Console未授权访问
弱口令+管理后台war包部署getshell
WebLogic:
XMLDecoder 反序列化漏洞(CVE-2017-10271 & CVE-2017-3506)
wls9_async_response,wls-wsat 反序列化远程代码执行漏洞(CVE-2019-2725)
WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)
弱口令+管理后台war包部署getshell
Windows:
数据库提权:mysql、sqlserver
第三方软件提权:serv-u
DLL劫持
系统内核溢出漏洞提权:cve系列
Linux:
sudo提权
suid提权
redis
内核提权
Django、Flask、Scrapy
Django任意代码执行
Flask模板注入
渗透过程不变,依旧是抓包修改参数渗透
不同点是小程序会将包下载到本地,可以使用逆向还原工具反编译
Activity组件:
activity绑定browserable与自定义协议
ActivityManager漏洞
Service组件:
权限提升,拒绝服务攻击
Broadcast Receiver组件:
权限管理不当
BroadcastReceiver导出漏洞
动态注册广播组件暴露漏洞
Content Provider组件:
读写权限漏洞
Content Provider中的SQL注入漏洞
Provider文件目录遍历漏洞
原理:
IDS工作在网络层,旁路部署,通过抓取和分析网络流量来发现攻击
IPS一般也是在网络层旁路,可以理解为具备阻断能力的IDS,是IDS的升级版(也有IDS检测到攻击通知阻断设备执行阻断动作的设备联动模式),可以覆盖网络层和应用层
绕过:
TCP分片:拆分出两个TCP包
IP分片:原理同TCP分片,但是丢包严重
程序bug/性能问题:发送大量无效包,消耗IPS性能
伪造TCP状态:绕过基于状态追踪的IPS
IPV6绕过:使用IPV6地址绕过
使用XMLHttpRequest、fetch构造出JSON请求,利用Flash的跨域与307跳转来绕过http自定义头限制
csrf
json劫持
xss
原理:
XML外部实体注入,在应用程序解析XML输入时,当允许引用外部实体时,可构造恶意内容,产生漏洞
利用:
DTD Document Type Definition
DTD 内部声明
DTD 外部引用
引用公共DTD
ENTITY
图片来自网络
使用脚本收集:端口信息、服务信息
系统命令收集:域内用户可使用域命令收集域信息,等
端口扫描工具全段扫描
本机信息收集:管理密码、登录日志看管理员ip、服务密码收集、网段信息查看、历史记录查看
内网DNS域传送漏洞
首先使用代理进入内网reg、ew等
第二在本机进行信息收集,包括管理员ip、端口服务、账号密码、路由信息、网段信息等
第三扩展到收集到的网段进行渗透,利用常用服务:SMB、MYSQL、SQLserver、ftp、telnet等
借助轻量化脚本或扫描器扫描,但一般不这么做,动静太大容易被管理员发现
图片来自网络
黄金票据:
一旦攻击者拥有管理员访问域控制器的权限,就可以使用Mimikatz来提取KRBTGT帐户密码哈希值。
生成票据
普通域账户,利用黄金票据,创建域管账户
此时域管账号创建成功
白银票据:
获取SID和NTLM
伪造票据
针对服务名伪造
成功获取域管账号
金票银票区别:
获取的权限不同
金票:伪造的TGT,可以获取任意Kerberos的访问权限
银票:伪造的ST,只能访问指定的服务,如CIFS
认证流程不同
金票:同KDC交互,但不同AS交互
银票:不同KDC交互,直接访问Server
加密方式不同
金票:由krbtgt NTLM Hash 加密
银票:由服务账号 NTLM Hash 加密