文章总结: 蓝队面试知识库覆盖Web漏洞原理与绕过、流量特征识别、安全设备配置、蜜罐部署与溯源、应急响应流程、内存马排查、红队攻击链及防御检测要点,提供可操作建议与工具链,适合蓝队岗位复习与实战参考。
综合评分: 85
文章分类: 漏洞分析,应急响应,安全运营,蓝队,威胁情报
面试汇总–20260122
原创
一个努力的学渣
一个努力的学渣
一个努力的学渣
2026年1月22日 17:59
北京
免责声明
本文只做学术研究使用,不可对真实未授权网站使用,如若非法他用,与平台和本文作者无关,需自行负责!
-
本文大多数以蓝队面试为主
-
2024.10.29内容:SQL注入、XSS、CSRF、SSRF、命令执行、代码执行、XXE、文件上传、文件包含、文件读取、文件下载、目录遍历、反序列化、逻辑漏洞、未授权、缓冲区溢出、Ddos攻击、应急响应
-
20250101新增:常见端口、提权
-
20250108新增:流量特征、应急响应(大概简化了点,不全)、框架组件
-
20250110新增:常见漏洞危害及绕过、网络安全设备常见问题
-
20260122新增:流量分析工具使用、蓝队技战法、蜜罐、其他、红队、内存马、朔源
-
面试证书
-
cisp必备(很多项目都需要)
-
其他证书看要求(看项目实际情况)
-
cisp-pte
-
cisp-pts
-
如果做数据安全,可能需要数据安全证书
-
如果做云安全,可能需要云安全证书
-
如果做应急响应,可能需要应急响应证书
其他
-
告警如何分析?如web层面的告警?
-
怎么判断误报?
-
怎么判断告警是成功的?
-
端口转发与端口映射的区别?
-
端口映射解决“规则定义”问题,端口转发解决“数据传递”问题
-
端口映射仅支持外网主动访问内网,端口转发支持任意方向流量传递
-
是否会规则编写?如yaml规则
-
是否会开发蓝队小工具,可借助AI
-
是否了解智能体、剧本?
-
智能体:https://www.volcengine.com/docs/85883/1606326?lang=zh
-
剧本:https://cloud.tencent.com/developer/article/2356099
流量特征
-
PHP一句话木马:
-
菜刀:base64加密,特征明显有参数z0,z1,z2,请求体中包含eval
-
蚁剑:PHP用base64加密,UA为工具名antSword,请求中常见@ini_set
-
冰蝎:AES对称加密,内置16个UA头,content-type固定:Content-type: Application/x-www-form-urlencoded
-
哥斯拉:base64加密,cookie中结尾有;请求为pass=开始
-
CS:
-
心跳包默认60秒,默认端口50050,随机或固定的UA根据版本判断,0.0.0.0是DNS beacon默认特征
-
HTTP源码特征:Wireshark抓HTTP请求包,然后提取他的请求url路径通过checksum8解密算法,如果得到的结果为92或93,则可以判断他的cs是没有进行魔改的
-
HTTPS源码特征:同一系统下的cs得到它的ja3 ja3s值是一致的
-
MSF:
-
默认使用4444端口作为反向连接端口
-
msf数据包通常包含特定字符串:(“meterpreter”、”revshell”等)
网络安全设备
-
IDS:
-
入侵监测系统,是否了解并配置
-
监控网络流量并报警
-
部署在网络监控点,监听流量不干预
-
减少误报:调整规则集、流量分析、机器学习
-
IPS:
-
入侵防护系统,是否了解并配置
-
主动拦截并阻止攻击
-
部署在流量路径,实时阻断恶意流量
-
减少误报:调整规则集、流量分析、机器学习
-
处理误报:调整监测阈值、白名单等方式
-
态势感知:是否会研判告警、调试规则、分析流量
-
NGSOC:是否会研判告警、调试规则、分析流量
-
防火墙:是否会调试策略
-
WAF:是否会配置
-
堡垒机:是否会配置
蜜罐
-
是否会配置
-
hfish蜜罐讲解:https://hfish.net/#/README
-
如何合理布置一个蜜罐:
-
蜜罐,不是部署的东西越多越好,也不能太简单,作为一名蓝队,你得让红队有一种成就感,这个系统我打了这么长时间,我努力了这么久,那系统应该是真实环境吧
-
所以,一个优秀的蜜罐,必须符合真实业务环境并且我们有意构造一个危害大的漏洞
-
首先,去除蜜罐特征:
-
蜜罐页面配置规则,只允许本机访问(本地电脑而不是本IP)
-
服务指纹调整:蜜罐服务会生成特定的响应头、页面内容等指纹。可通过修改蜜罐的模板文件或服务配置,调整响应头中的服务器标识、页面标题、默认页面内容等,使其更接近真实业务系统。
-
混入真实环境:将蜜罐IP与真实服务器IP混在同一网段,并开放少数常见但无用的端口
-
模拟网络瑕疵:引入微小的、随机的网络延迟;对某些非法请求返回合理的错误而非丢弃
-
制造背景流量:生成仿真的、低水平的“用户”流量(如定期的SSH登录、HTTP访问日志)
-
植入历史痕迹:创建丰富的用户、进程、日志、计划任务和文件系统痕迹,模拟一台“在用”服务器
-
模拟管理员活动:通过脚本定期执行“无害的运维命令”(如df -h, netstat -ant),并产生相应日志
-
设置合理的诱饵:将诱饵文件放在深层目录,赋予其合理的文件名、大小和修改时间。
-
之后构造一个真实的蜜罐企业环境:
-
技术选型与部署:
-
推荐组合:HFish(主) + Cowrie(辅)。HFish作为管理核心,提供Web界面和多种蜜罐;Cowrie作为高交互SSH蜜罐补充。
-
部署步骤:
-
准备环境:使用独立VLAN或专属虚拟机集群。确保宿主机安全加固。
-
部署HFish管理端:在一台Linux服务器上安装,它将作为指挥中心。
-
分布式部署节点:在各目标网段(如图中核心区、办公网)的独立主机上安装HFish节点,并注册到管理端。
-
部署Cowrie:在另一台主机部署,模拟更真实的SSH交互
-
配置核心策略:
-
网络隔离:配置严格的防火墙规则,只允许蜜罐接受入站连接,出站仅可访问管理端和日志服务器。逼真化配置(关键):
-
服务模拟:在HFish中,为每个蜜罐定制Banner、响应内容。例如,将MySQL蜜罐版本设为 5.7.26-log。
-
系统伪装:在虚拟机中创建用户历史、计划任务、假日志(/var/log/apache2/access.log 填充一些访问记录)。
-
诱饵投放:在Web蜜罐中放入 admin_backup.zip;在文件服务器蜜罐中放入 2023Q4_财务预算草案.xlsx;使用 FakeNet 或自定义脚本生成“敏感数据”流量。
-
部署监控与日志:
-
将所有蜜罐的日志(系统日志、应用日志、网络流量pcap)集中发送到ELK Stack或Graylog。
-
在管理平台配置实时告警(如:微信、钉钉、邮件),对登录成功、文件上传、命令执行等关键事件立即通知。
-
之后,使用Heimdallr插件/其他蜜罐插件查看下是否属于蜜罐,如果符合蜜罐,那还需调整规则等内容
-
日常运营:
-
告警处理:对告警进行三级分析:1级(扫描)记录、2级(爆破)关注、3级(入侵成功)立即应急响应。
-
攻击者画像:在捕获攻击后,尝试利用蜜罐的反制能力(如HFish的逆向前瞻模块)获取攻击者主机信息、社交账号等,结合攻击行为,丰富攻击者画像。
-
体系化联动(价值倍增):
-
与防火墙/WAF联动:将蜜罐捕获的恶意IP,通过API自动提交到边界防火墙/WAF的黑名单,实现“内网发现,外网封堵”。
-
与SIEM/SOAR联动:将蜜罐日志和告警作为高价值数据源接入SIEM。编写SOAR剧本,实现“蜜罐RDP登录成功 → 自动查询该IP在内网的其他活动 → 若发现异常,联动EDR暂时隔离主机”。
-
生产威胁情报:定期从日志中提取攻击载荷、恶意样本、C2地址,形成内部威胁情报指标(IOC),推送至情报平台,赋能全网的检测设备(如IDS、EDR)。
-
持续对抗与进化:
-
定期更新诱饵:更换诱饵文件、修改服务端口和Banner,避免被攻击者标记。
-
红蓝对抗验证:邀请内部红队对蜜罐进行探测和攻击,检验其隐蔽性和检测有效性,并持续优化。
-
部署完成后,可按此清单验证:
-
网络隔离:从蜜罐无法主动访问任何真实业务IP。
-
服务逼真:使用 nmap -sV -O 扫描蜜罐,返回信息与真实服务无异。
-
日志完整:在ELK中能查询到蜜罐的所有访问尝试和攻击细节。
-
告警有效:模拟一次SSH爆破攻击,能在1分钟内收到告警。
-
联动测试:触发一次告警,验证SOAR剧本是否能自动封禁IP。
-
背景噪音:蜜罐上有模拟的正常低水平活动日志。
-
蜜罐如何朔源:
-
第一层:网络与主机层溯源(自动化程度高)
-
这是最基础的溯源,通常在攻击发生时就自动完成
-
攻击源信息:
-
IP地址:通过威胁情报平台(微步、VirusTotal)查询其历史恶意行为、关联域名、地理位置(通常不精确)。
-
端口与协议:攻击源端口是否为高端口(可能来自代理或已控主机)。
-
攻击载荷与工具:
-
文件样本:上传的WebShell、可执行木马。可提交沙箱分析,提取C2地址、行为特征。
-
工具指纹:扫描工具特征(如Nmap的–osscan-guess)、爆破工具字典特征、漏洞利用代码的独特标记。
-
攻击手法:
-
攻击序列:记录完整的攻击链(扫描->识别->漏洞利用->上传后门->横向移动)。独特的TTPs可关联到特定APT组织。
-
第二层:系统交互层溯源(需要高交互蜜罐)
-
当攻击者与蜜罐系统(如SSH、Web后台)进行交互时,获取更直接的身份线索
-
客户端信息:
-
SSH/RDP客户端信息:通过修改服务端,记录客户端软件版本、终端类型(如xterm-256color)、甚至窗口大小。
-
浏览器指纹:如果攻击者访问了Web管理后台,可记录其User-Agent、屏幕分辨率、时区、安装的插件等,生成唯一指纹。
-
攻击者行为习惯:
-
输入习惯:通过记录击键时序,分析输入节奏和错误,形成行为生物特征。
-
常用命令集:攻击者习惯性的命令别名、查看特定路径(/etc/passwd, /root/.bash_history)等。
-
社交与搜索引擎痕迹:攻击者可能在蜜罐内使用curl、wget搜索特定关键词或访问外部服务,暴露其意图。
-
身份标识:
-
攻击者使用的用户名、密码、邮箱、GitHub ID等,可直接用于关联社工库。
-
第三层:主动反制层溯源(法律与伦理风险区)
-
在严格受控、法律授权前提下,通过精心设计的“陷阱”主动获取攻击者信息。务必谨慎评估法律风险!
-
服务端反制:
-
恶意MySQL服务器:当攻击者尝试连接时,返回一个特制的LOAD DATA LOCAL INFILE请求,诱使其发送客户端上的指定文件(如~/.ssh/id_rsa)。
-
HTTP反制:利用JSONP跨域、XSS漏洞,让攻击者浏览器向你的监控服务器发送其登录Cookie或社交账号信息。
-
诱饵文件反制:
-
在蜜罐放置含有追踪链接或隐藏图片的诱饵文档(如.docx),当攻击者打开时,会向你的服务器发起请求,泄露其真实IP。
-
MySQL蜜罐:伪造认证过程,利用LOAD DATA LOCAL INFILE漏洞迫使攻击者客户端回传本地文件(如C:/Windows/system.ini)
-
RMI反序列化蜜罐:部署ysoserial工具,当攻击者利用Java反序列化漏洞时触发反向攻击(如执行CS上线命令)
-
在伪造的Web蜜罐(如OA、数据库登录页)中嵌入特定JS脚本,利用攻击者浏览器缓存的Cookie访问社交平台(微信/微博/QQ)的JSONP接口,直接获取其社交ID、手机号。
-
诱导下载伪装插件(如”VPN客户端”),实际为反制程序,控制攻击者主机后提取:
-
浏览器历史记录、微信/QQ本地缓存文件
-
敏感文档(含姓名、身份证号)
-
当前登录的社交账号(如微信ID)
-
社交工程反制:
-
伪造一个需要“二次验证”的登录页面,诱使攻击者输入其“备用邮箱”或“手机号”。
流量分析工具使用
-
科来:
-
最大的优点:把所有的数据根据源和目的进行了归类,这样方便我们根据查找和某个服务器的的进程交互的所有的数据包
-
wireshark:
-
根据源IP过滤主机:ip.src ==
-
根据目标IP过滤主机:ip.dst ==
-
过滤两个主机之间的对话:ip.addr eq 1.1.1.1 and ip.addr eq 2.2.2.2
-
过滤特定IP的数据包:ip.addr ==
-
按协议过滤:tcp
-
显示源端口或目的为80的tcp数据包:tcp.port == 80
-
显示目的端口为80的tcp数据包:tcp.dstport == 80
-
显示源端口为80的tcp数据包:udp.port == 80
-
显示POST方法提交的数据包:http.request.method == “POST”
-
如何还原文件,比如zip文件:
-
点进zip数据包–>选中media type–>右键选中复制–>Hex Stream–>打开winhex 16进制查看工具–>点击编辑从剪贴板粘贴–>选中 ASCII HE–>之后得到zip文件–>另存为zip
-
tcpdump:
-
逻辑符:and、or、not
-
-i:指定网络接口
-
-c:指定数据数量
-
host:指定主机流量
-
src host:指定源主机流量
-
dst host:指定目标主机流量
-
port:指定特定端口流量
-
tcp:指定特定协议
-
-w:将捕获的数据包保存为.pcap
框架组件
-
shiro反序列化:
-
特征:存在rememberMe字段
-
如果返回包包含java反序列化异常报错信息可能攻击成功
-
struts2:
-
在请求头中存在OGNL表达式,请求头中找java.lang.Runtime这个参数可执行系统命令
-
URL中存在特定的Struts2命名空间(namespace)和操作名(action)
-
Log4j2:
-
ldap、rmi
-
使用${}格式触发JNDI注入
-
攻击成功可以查看源ip与dnslog外联请求
-
fastjson反序列化:
-
请求方式为POST,且content_type:application/json
-
状态码大多数为500,400
常见端口
-
MySQL:3306
-
UDF提权
-
MOF提权
-
启动项提权
-
SQL Server:1433/1434
-
xp_cmdshell提权
-
CLR提权
-
沙盒提权
-
PostgreSQL:5432
-
UDF提权
-
历史漏洞提权
-
Oracle:1521
-
注入存储过程提权
-
utl_http.request存储过程提权
-
MongoDB:27017/27018
-
ES:9200/9300
-
redis:6379
-
写webshell
-
条件:
-
知道网站绝对路径,并且需要增删改查权限
-
root启动redis
-
redis弱密码或无密码
-
写 ssh-keygen公钥
-
条件:
-
redis服务使用Root账号登录
-
服务器开放SSH服务,并且允许使用密钥登录
-
创建计划任务反弹shell
-
条件:
-
root启动redis
-
redis无密码或弱密码
-
主从复制getshell
-
条件:
-
Redis版本(4.x-5.0.5)
-
redis无密码或弱密码
-
root启动redis
-
FTP:21
-
SSH:22
-
Telnet:23
-
SMTP:25
-
DNS:53
-
RDP(远程桌面):3389
-
POP3:110
-
SMB:445
-
RabbitMQ Management:15672
-
ActiveMQ Web Console:8161
-
WebLogic:7001/7002
-
弱口令
-
反序列化
-
任意文件上传
-
SSRF漏洞
-
远程代码执行漏洞
-
未授权访问漏洞
-
Tomcat:8080
-
弱口令登录+后台配置WAR包getshell
-
信息泄露
-
tomcat文件包含+getshell
-
任意文件写入
-
Apache:80、443
-
换行解析漏洞
-
1.php后面插入\0A
-
多后缀解析漏洞
-
1.php.jpg会解析为1.php
-
SSI远程命令执行漏洞
-
上传1.shtml文件
-
路径穿越漏洞
-
curl -v –data “echo;id” ‘http://192.168.200.3:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh’
-
SSRF漏洞
-
目录遍历漏洞
-
IIS:80
-
IIS6.0 PUT漏洞
-
IIS6.0 远程代码执行漏洞
-
IIS6.0 解析漏洞
-
1.asp;.jpg会当成1.asp解析
-
IIS7.0/7.5 解析漏洞
-
1.jpg/.php
-
IIS短文件名漏洞
-
HTTP.SYS远程代码执行漏洞
-
Nginx:443
-
解析漏洞
-
1.jpg/2.php
-
1.jpg [加个空格]
-
配置不当
-
%00截断解析
-
目录遍历
-
目录穿越
-
CRLF注入漏洞
-
整数溢出漏洞
-
Jboss:8080
-
Jboss 5.x/6.x反序列化漏洞
-
访问/invoker/readonly返回500,证明存在
-
Administrator Console管理页面弱口令+后台上传war包进行Getshell
-
JXM Console未授权访问
系统提权
-
Linux
-
内核提权
-
如脏牛漏洞:内核>=2.6.22
-
SUID提权
-
计划任务提权
-
sudo提权
-
明文root密码提权
-
密码复用提权
-
配置错误提权
-
第三方服务提权
-
NFS提权
-
Docker提权
-
数据库提权
-
UDF提权
-
MOF提权
-
启动项提权
-
反弹端口提权
-
CVE-2016-6663、CVE-2016-6664组合提权
-
Windows
-
内核溢出漏洞提权
-
psexec提权
-
UAC提权
-
令牌窃取
-
烂土豆提权
-
可信服务路径漏洞提权
-
DLL劫持提权
-
at命令提权
-
sc命令提权
-
常用漏洞提权
SQL注入
-
原理:没有对用户输入的SQL语句进行严格的验证和过滤
-
危害:只要权限广,可直接getshell
-
一般都是以MySQL为准
-
MySQL5.0以下:只能暴力猜解
-
MySQL5.0以上:information_schema
-
information_schema.schemata: 该数据表存储了mysql数据库中的所有数据库的库名
-
information_schema.tables: 该数据表存储了mysql数据库中的所有数据表的表名
-
information_schema.columns: 该数据表存储了mysql数据库中的所有列的列名
-
常用函数:
-
version(): 查询数据库的版本
-
user():查询数据库的使用者
-
database():数据库
-
system_user():系统用户名
-
session_user():连接数据库的用户名
-
current_user:当前用户名
-
load_file():读取本地文件
-
into outfile:写文件
-
@@datadir:读取数据库路径
-
@@basedir:mysql安装路径
-
@@version_complie_os:查看操作系统
-
ascii(str) : 返回给定字符的ascii值
-
length(str) : 返回给定字符串的长度
-
substr(string,start,length) : 对于给定字符串string,从start位开始截取,截取length长度
-
substr()、stbstring()、mid() 三个函数的用法、功能均一致
-
concat(username):将查询到的username连在一起,默认用逗号分隔
-
concat(str1,’*’,str2):将字符串str1和str2的数据查询到一起,中间用*连接
-
group_concat(username) :将username数据查询在一起,用逗号连接
-
limit n,1: 查询第n+1个数
-
分类
-
注入类型分类
-
数字类型、字符串类型、搜索类型、框架类型
-
提交方式分类
-
GET注入、POST注入、Cookie注入、HTTP头注入
-
获取信息的方式分类
-
布尔注入
-
猜,如length(str)
-
length(database())>5
-
时间注入
-
sleep()
-
if(1>2,sleep(1),0);
-
报错注入
-
floor
-
extractvalue
-
UpdateXml
-
NAME_CONST
-
join
-
exp
-
GeometryCollection
-
polygon
-
multipoint
-
multlinestring
-
multpolygon
-
linestring
-
联合注入
-
union
-
堆叠注入
-
;
-
宽字节注入
-
df’
-
步骤
-
是否存在注入:
-
单引号、双引号、单括号、双括号是否报错
-
and 1=1、and 1=2,页面不一样代表存在SQL注入
-
判断列数:
-
order by
-
判断回显点:
-
union select 1,2,3
-
收集信息(用户、库、表、列、拿数据)
-
万能密码:
-
OR ‘1’ = ‘1
-
OR 1=1
-
‘ OR ‘a’ = ‘a
-
绕过
-
编码绕过
-
大小写绕过
-
等价函数绕过
-
双写绕过
-
注释符绕过
-
sqlmap
-
-u:判断是否存在注入
-
–current-db:获取当前数据库
-
–current-user:查看当前用户
-
–tables -D “admin”:获取admin数据库中的表
-
–columns -T “admin” –tables -D “test”:获取test数据库中admin表的列名
-
-dump -C “username,password” –columns -T “admin” –tables -D “test”:获取test数据库下admin表中的username和password列的数据
-
–dump-all:获取所有数据
-
–data “”:POST注入
-
-r:文件注入
-
–tamper:脚本绕过
-
绕过:
-
注释符绕过
-
/*注释内容*/
-
;
-
;%00
-
大小写绕过
-
内敛注释绕过
-
/*!select*/
-
双写绕过
-
编码绕过
-
ASCII编码
-
16进制编码
-
Unicode编码
-
大于小于号绕过
-
between and
-
in
-
空格绕过
-
/**/
-
()
-
`
-
tab键
-
两个空格
-
%0a
-
关键字绕过
-
or:||
-
and:&&
-
xor:|或者异或^
-
not:!
-
等号绕过:
-
like
-
regexp
-
大小于号
-
!<>
-
单引号绕过:
-
十六进制
-
宽字节
-
等价函数绕过
-
sleep():benchmark
-
ASCII():bin、hex、ord
-
group_concat():concat_ws、concat
-
substr():substring、mid、left、right
-
修复:
-
采用预编译
-
使用参数化查询
-
参数化:将用户输入内容当作数据,而不是SQL语句的一部分
-
使用ORM(对象关系映射)
-
ORM会自动使用参数化查询
-
对输入内容做严格校验和过滤
-
只允许字母和数字
-
最小化数据库权限
-
禁止敏感函数操作
-
使用WAF
-
禁用数据库错误输出
-
使用云数据库(一般很少公司使用)
-
原因:数据库是心脏,放在别人身上不安全
-
如何取舍?
-
云数据库只有白名单才可以访问(拿到账号密码也不行)
XSS
-
跨站脚本攻击
-
原理:没有对用户输入的HTML语句进行严格的验证和过滤
-
危害:
-
窃取用户信息
-
篡改页面
-
钓鱼
-
执行恶意操作
-
传播恶意软件
-
破坏网站功能
-
蠕虫
-
恶意重定向
-
分类:
-
反射型
-
存储型
-
DOM型
-
绕过:
-
编码绕过
-
HTML实体编码
-
URL编码
-
Unicode编码
-
base64编码
-
Javascript编码
-
大小写绕过
-
Javascript事件绕过
-
浏览器容错机制绕过
-
不完整的HTML标签绕过
-
注释绕过
-
DOM方法绕过
-
外部脚本绕过
-
IMG标签绕过
-
IFrame绕过
-
SVG绕过
-
Flash文件绕过
-
内敛绕过
-
windows.location绕过
-
document.write绕过
-
字符拼接绕过
-
修复:
-
对用户输入进行转义
-
对用户输入内容进行严格的验证
-
使用CSP
-
CSP:浏览器的安全机制
-
避免直接插入数据
-
使用textContent 或 innerText 来插入文本(只是插入纯文本)
-
不能使用 innerHTML(会解析并执行其中的HTML和Javascript)
-
使用安全的JS框架和库
-
React, Angular, Vue等框架会自动对用户输入进行转义
-
禁止内敛脚本
-
关闭错误显示
-
使用HttpOnly
CSRF
-
跨站请求伪造
-
原理:利用登录状态诱使用户在不知情的情况下执行恶意操作
-
危害:
-
数据泄露
-
非法操作
-
蠕虫
-
拒绝服务
-
绕过:
-
置空
-
删除参数请求
-
复用请求
-
更改请求方法
-
替换相同长度
-
解码CSRF令牌
-
HTML注入提取令牌
-
referer绕过
-
修复建议
-
使用Token验证
-
在Set-Cookie头中使用SameSite属性
-
限制浏览器是否携带Cookie跨站点发送
-
避免使用GET请求敏感操作
-
验证请求来源
-
Referer、Origin
SSRF
-
服务器请求伪造
-
原理:通过构造恶意请求,利用服务器发起请求,访问内部资源
-
危害:
-
内网探测
-
伪协议:
-
http://
-
file:///
-
dict://
-
sftp://
-
ldap://
-
tftp://
-
gopher://
-
绕过:
-
伪协议绕过
-
@符号绕过
-
.绕过
-
IP地址绕过
-
127.0.1
-
localhost
-
[::1]
-
17.1
-
进制转换绕过
-
短网址绕过
-
302绕过
-
注册域名并解析到127.0.0.1绕过
-
特殊地址绕过
-
http://0/
-
修复建议
-
限制HTTP请求范围
-
白名单限制服务器能访问的IP地址范围
-
禁止访问内部地址(127.0.0.1, localhost, 0.0.0.0)
-
对输入内容进行严格验证
-
禁止不必要的协议
-
避免URL重定向
命令执行
-
原理:通过WEB应用执行系统命令
-
危害:
-
系统权限提升
-
铭感信息泄露
-
远程执行恶意代码
-
只要权限广可getshell
-
函数:
-
system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()等
-
绕过:
-
空格绕过
-
${IFS}
-
$IFS$9
-
%09
-
{}
-
<
-
关键字绕过
-
变量拼接
-
系统变量绕过
-
Base64编码绕过
-
无回显借助DNSlog平台
-
修复建议
-
避免直接执行输入的命令
-
使用系统的 API(如 Python 的 subprocess)并避免使用 system()、exec() 等函数
-
对输入内容进行严格校验
-
使用参数化命令执行
-
使用 subprocess.run() 代替 os.system()
-
限制命令的执行权限
-
禁止返回内容
代码执行
-
原理:允许攻击者在目标服务器上传或执行恶意代码
-
函数:
-
eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()、等
-
修复建议
-
禁止上传可执行文件
-
检查文件内容
-
MIME类型、扩展名
-
限制权限
-
文件上传时使用随机文件名
-
对输入内容进行严格校验
-
关闭错误显示
XXE
-
XML外部实体注入
-
原理:没有对用户输入的恶意的XML语句进行严格的验证和过滤
-
危害:
-
内网扫描
-
任意文件读取
-
命令执行
-
绕过:
-
关键词绕过
-
HTML实体
-
Base64
-
UTF-7
-
UTF-16be
-
其他协议绕过
-
data://
-
file:///
-
php:/filter
-
文档中额外空格绕过
-
修复建议
-
禁用外部实体解析
-
使用XML解析库的安全配置
-
对输入内容进行严格校验
-
限制权限
文件上传
-
原理:没有对用户上传的文件进行严格的验证和过滤
-
危害:
-
上传WEBshell
-
绕过:
-
前端绕过
-
删除前端校验函数
-
禁用JS代码
-
BP改包
-
黑名单绕过
-
等价扩展名绕过
-
.htaccess文件绕过
-
大小写绕过
-
空格绕过
-
点号绕过
-
::$DATA绕过
-
空格+点号绕过
-
双写绕过
-
00截断
-
文件头监测绕过
-
user.ini名字绕过
-
白名单绕过
-
MIME绕过
-
00截断
-
二次渲染
-
条件竞争时间差绕过
-
配合其他漏洞
-
修复建议
-
OSS
-
引发的问题:key泄露
-
限制上传类型
-
扩展名、MIME类型
-
对文件内容进行严格验证和过滤
-
使用库如 ImageMagick 或 Pillow 来验证图像文件的实际内容
-
上传目录设置为只读,无执行权限
-
限制上传文件大小
-
对上传文件名进行处理(随机生成)
-
禁止使用特殊字符
-
..
-
/
-
%
-
白名单校验
-
如果是图片,进行二次渲染、压缩
-
禁用输出
文件包含
-
原理:包含文件时没有对用户输入的内容进行严格的验证和过滤
-
分类:
-
本地文件包含
-
远程文件包含
-
allow_url_include=On
-
绕过:
-
伪协议绕过
-
%00截断
-
长度截断
-
伪协议:
-
file://
-
php://filter/read=conver.base64-encode/resource=./index.php
-
php://filter/write=convert.base64-encode/resource=phpinfo.php&test=
-
php://input post=
-
php://input POST:‘); ?>
-
data://text/plain,
-
修复建议
-
禁用远程文件包含
-
allow_url_fopen 和 allow_url_include 设置为 Off
-
对用户输入的内容进行严格的验证和过滤
-
使用安全的库或函数
-
在 PHP 中,可以使用 basename() 来去除路径信息,只保留文件
-
限制目录
-
最小化原则
文件读取
-
原理:没有对用户的输入进行严格的过滤,导致可以读取敏感文件
-
修复建议
-
禁锢目录,只能访问特定目录下的文件
-
限制权限,最小化原则
-
文件名和访问路径进行白名单设置
-
对用户输入的内容进行严格的验证和过滤(如../)
-
禁止使用危险参数
-
readfile()、file_get_contents()等
文件下载
-
原理:没有对用户的输入进行严格的过滤,导致可以下载敏感文件
-
修复建议
-
对用户输入的内容进行严格的验证和过滤(如../)
-
限制可下载的文件文件类型和目录
-
控制文件访问权限
-
设置白名单,只能下载特定目录下的文件
-
随机ID文件拼接
目录遍历
-
原理:没有对用户的输入进行严格的过滤,导致可以目录遍历
-
修复建议
-
对用户输入的内容进行严格的验证和过滤(如../)
-
控制文件访问权限
-
禁用相对路径
-
使用安全的函数
-
如 realpath()
反序列化
-
原理:没有对用户的输入的序列化数据进行校验
-
序列化:对象转换为数组或字符串等格式
-
serialize()
-
反序列化:数组或字符串等格式转换为对象
-
unserialize()
-
绕过:
-
魔术方法绕过
-
正则匹配绕过
-
十六进制绕过
-
修复建议
-
禁用不必要的反序列化操作
-
对反序列化的数据进行签名和加密
-
验证和过滤反序列化数据
-
使用安全的库和数据格式
-
JSON、XML
-
白名单
-
只允许特定的类进行反序列化
逻辑漏洞
-
原理:逻辑功能存在缺陷,导致可以绕过造成其他影响
-
修复建议
-
代码控制(逻辑漏洞是程序员设计问题,没想到这个问题)
未授权
-
原理:没有正确实现访问控制,导致可以访问限制级的资源
-
修复建议
-
强制认证和授权
-
最小化原则
-
定期审查访问控制逻辑
缓冲区溢出
-
原理:将过多数据写入缓冲区导致溢出,造成缓冲区溢出
-
修复建议
-
使用安全的编码语言
-
边界检查和验证
-
编译器保护
-
使用栈保护(如 StackGuard)和数据执行保护(如 DEP)等编译器和操作系统功能来防止缓冲区溢出
Dos攻击
-
原理:通过消耗系统资源(如 CPU、内存、带宽)使 Web 应用无法正常提供服务
-
修复建议
-
限制请求频率
-
部署WAF
-
反向代理、负载均衡
应急响应
-
大致需要懂一点,比如钓鱼邮件、挖矿等如何应急?
-
流程:
-
收集信息
-
收集客户信息和中毒信息,包括样本
-
判断类型
-
判断是否是安全事件、何种安全事件、勒索、挖矿、断网、Dos
-
抑制范围:
-
隔离使受害面不继续扩大
-
深入分析
-
日志分析、进程分析、启动项分析、样本分析
-
清理处置
-
杀掉进程、删除文件、打补丁、删除异常系统服务、修复文件
-
产出报告
-
整理并输出完整的安全事件报告
-
学习:https://bypass007.github.io/Emergency-Response-Notes/
-
应急响应简化:
-
Windows入侵排查:
-
入侵排查思路:
-
检测系统账号安全:
-
是否存在弱口令、远程管理端口是否对公网开放
-
是否存在可疑账号、新增账号
-
是否存在隐藏账号、克隆账号
-
结合日志,查看管理员登录时间,用户名是否存在异常
-
检查异常端口、进程:
-
异常端口检查:
-
netstat -ano:查看网络连接,定位可疑的ESTABLISHED
-
netstat -ano | findstr “port”
-
根据netstat定位的pid,结合tasklist命令进行进程定位:tasklist | findstr “PID”
-
进程检查:
-
msinfo32命令可查看运行进程的详细信息
-
D盾、微软官方提供的 Process Explorer 等工具排查
-
主要关注:没有签名验证的进程及子进程、没有描述信息的进程、进程的属主、进程的路径是否合法、CPU或内存资源占用时间过高的进程
-
检查启动项、计划任务、服务
-
检查系统相关信息
-
系统版本、补丁、可以目录及文件、同时间段修改的文件和目录
-
自动化查杀
-
日志分析
-
Linux入侵排查思路:
-
账号安全
-
可疑账号、可以远程登录的账号、UID为0的特权用户(who、w、uptime)
-
之后禁用或删除多余及可疑的账号
-
历史命令是否存在
-
检查异常端口
-
检查异常进程
-
检查开机启动项
-
检查定时任务
-
检查服务自启动
-
检查异常文件
-
/tmp目录
-
入侵范围内修改的文件
-
检查系统日志
-
WEBshell查杀工具:
-
D盾、百度WEBDIR+、河马、Web Shell Detector、牧云、Sangfor WebShellKill、深度学习模型检测PHP Webshell、PHP Malware Finder、findWebshell、在线webshell查杀工具
-
如何发现隐藏的后门:
-
MD5校验、diff命令、版本控制工具、文件对比工具(Beyond Compare、WinMerge)
-
勒索病毒:
-
利用勒索病毒搜索引擎
蓝队技战法
-
画像:
-
提取攻击链:如信息收集–>漏扫–>文件上传–>维权–>内网探查
-
标记关键节点:如使用什么漏洞、什么工具、攻击者身份特征等
-
如:每次钓鱼攻击中,攻击者通过系统升级邮件,批量发送,哪些人中招了,最后主机被控制,继而进一步内网横向移动
-
防御:
-
封控:如防火墙拦截、隔离主机等
-
检测:告警规则、流量异常等
-
修复:修补漏洞、禁用高危端口及服务等
-
反制:
-
收拢攻击面:减少暴露面,如关闭不必要的服务
-
欺骗战术:蜜罐
-
联动防御:NDR+SIEM+SOAR工具链协同
-
验证:
-
测试环境模拟攻击,验证防御体系是否有效
-
结合威胁情报对标攻击手法
-
每月复盘,淘汰果实策略,补充新场景
-
输出:
-
基础信息:事件时间、攻击类型、影响范围等
-
战术手段:使用工具、漏洞、手法等
-
防御:检测规则、处置步骤、加固方案等
-
关联情报:威胁组织、攻击指标、同类案例链接等
-
思维导图梳理攻击路径更直观
红队
-
红队C2反连平台都有哪些?(大概说几个就行,大致功能需要了解下)
-
CobaltStrike
-
Metasploit Framework
-
VSHELL
-
core impact
-
Viper
-
Havoc C2
-
Sliver C2
-
XiebroC2
-
Supershell
-
Empire
-
Mythic
-
convoC2
-
emp3r0r
-
Villain
-
AsyncRAT
-
红队上传后门之后的攻击手法都有哪些?
-
权限提升:目标是获得系统最高权限,为后续操作扫清障碍
-
本地漏洞利用:利用操作系统或软件本地提权漏洞,获取root或SYSTEM权限。
-
凭据窃取与滥用:
-
转储内存密码:使用Mimikatz等工具从lsass.exe进程内存中提取明文密码或哈希。
-
窃取密码文件:获取/etc/shadow或C:\Windows\System32\config\SAM。
-
滥用服务账户:利用配置不当的、高权限的服务账户。
-
配置错误利用:利用错误的文件/目录权限、不安全的服务配置、计划任务等进行提权。
-
横向移动:
-
凭据传递攻击:
-
密码传递:直接使用窃取的密码登录其他主机。
-
哈希传递:在无需明文密码的情况下,使用NTLM哈希进行身份验证。
-
票据传递:窃取Kerberos票据,冒充合法用户访问资源。
-
利用网络服务漏洞:攻击内网中未修复漏洞的SMB、RDP、SSH、数据库等服务。
-
远程命令执行:使用WMI、PsExec、WinRM等合法管理工具执行命令,实现“无文件”攻击。
-
软件供应链攻击:如果后门在开发/运维机器上,可通过感染其构建或部署流程,扩散至更多服务器。
-
信息收集:
-
网络拓扑探测:扫描内网网段,定位域控制器、文件服务器、数据库等关键资产。
-
凭据与权限枚举:查看当前用户权限、所在组、可访问的共享资源、域内关系等。
-
数据定位:搜索包含“财务”、“密码”、“备份”等关键词的文档、数据库和源代码。
-
持久化:
-
植入新的后门:在多个不同位置植入不同类型的后门,如WebShell、内存马、Rootkit等。
-
创建计划任务/服务:设置定时或系统启动时执行的后门任务。
-
劫持合法程序/启动项:修改系统启动脚本或劫持常用软件的加载库。
-
域内持久化:攻击者可能创建隐藏的后门账户、配置黄金票据,甚至在域策略中植入脚本。
-
目标达成与数据渗出
-
反朔源与痕迹清理:
-
清除日志:清理操作系统、应用的安全日志和访问记录。
-
使用无文件技术:仅在内存中执行恶意代码,减少文件系统痕迹。
-
伪装与模仿:模仿正常用户或系统的行为模式,如使用正常的工作时间、工具进行活动。
-
对抗蜜罐与沙箱:通过检测虚拟化环境、系统交互度来判断是否处于蜜罐中。
-
蓝队防守检测要点:
-
权限提升:异常进程创建、敏感进程访问、特权账户异常登录
-
横向移动:内部主机的异常登录、大量失败的认证尝试、非常规端口扫描
-
持久化:新增的启动项、计划任务、可疑服务或系统文件修改
-
数据渗出:异常大小的外发流量、非业务时段的数据传输、非标准协议外联
-
反朔源:日志被大量清除、安全监控代理异常掉线
内存马
-
内存马类型:
-
传统Web应用型内存马:
-
Servlet型内存马:动态注册Servlet及映射路由
-
Filter型内存马:动态注册Filter及映射路由
-
Listener型内存马:动态注册Listener
-
框架型内存马:
-
SpringController型内存马:动态注册Controller及映射路由
-
SpringInterceptor型内存马:动态注册Interceptor及映射路由
-
SpringWebflux型内存马:动态注册Webfilter及映射路由
-
中间件型内存马:
-
Tomcat Value型内存马:动态注册Value
-
Tomcat Upgrade型内存马:动态注册UpgradeProtocol
-
其他中间件型内存马:
-
WebSocket型内存马:动态注册WebSocket路由及处理逻辑
-
Tomcat JSP型内存马:动态注册Tomcat JSP管理逻辑并实现驻留
-
线程型内存马:启动一个无法被杀死的线程
-
RMI型内存马:动态启动一个RMI Registry
-
Agent型内存马:
-
通过Hook并修改关键方法添加恶意逻辑。Agent型内存马在现代webshell管理工具中有广泛实现
-
怎么判断是内存马?
-
无实际物理路径、访问路径不是常规路径(如/fac.icon)、页面不存在但日志返回200状态码
-
内存马排查思路:
-
首先判断是什么方式注入的内存马
-
可以通过查看web日志,看看是否有异常路径,是否无法访问但日志中返回200状态码
-
如果web日志中没有发现,那么我们就可以排查中间件的error.log日志
-
内存马如何查杀?
-
蓝队工具箱
-
PHP:可借助webshell工具,目前很多webshell工具中集成
-
Java:
-
java-memshell-scanner工具:通过jsp脚本扫描java web Filter/Servlet型内存马
-
arthas工具:一款监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息。可使用该工具对内存马排查和分析,如攻击者隐藏的深可将所有的类都反编译导出来然后逐一排查
-
shell-analyzer工具:支持Filter、Servler、Listener、Value
-
cop.jar:能排查几乎主流内存马技术,自动提取需要自己排查
朔源
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:一个努力的学渣 一个努力的学渣
一个努力的学渣《面试汇总–20260122》