2025年渗透测试面试题总结-拷打题库24(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年渗透测试面试题总结-拷打题库24
1. \u0023是什么字符的16进制编码?为什么在payload中要用它?
2. Java会不会发生执行系统命令的漏洞?哪些方法可能触发?
3. 修复Java程序中的XSS漏洞应在哪一层?
4. Java中XSS Filter的设置位置
5. Java类反射的安全问题
6. Java反序列化漏洞原理与解决方案
7. 常见Java框架
8. Redis未授权访问漏洞利用
9. 中间件解析漏洞利用方式
10. 常见Java中间件容器
11. Tomcat安全加固
12. MySQL表权限与安全加固
13. SQL Server Public权限提权
14. Linux系统安全加固
15. MySQL密码存储与数据库结构
16. Linux入侵检测与日志分析
17. 判断注入点数据库类型
2025年渗透测试面试题总结-拷打题库24
\u0023是什么字符的16进制编码?为什么在payload中要用他? java会不会发生执行系统命令的漏洞?java都有哪些语句,方法可以执行系统命令? 如果叫你修复一个xss漏洞,你会在java程序的那个层里面进行修复? xss filter在java程序的哪里设置? 说下java的类反射在安全上可能存在哪些问题 Java反序列化漏洞的原理?解决方案? 你都了解哪些java框架? Redis未授权访问漏洞如何入侵利用? 说说常见的中间件解析漏洞利用方式 JAVA有哪些比较常见的中间件容器? tomcat要做哪些安全加固? 如果tomcat重启的话,webapps下,你删除的后台会不会又回来? 常见的网站服务器中间件容器。 mysql表权限里面,除了增删改查,文件读写,还有哪些权限? mysql安全要如何做? sqlserver public权限要如何提权 Windows、Linux、数据库的加固降权思路,任选其一 mysql的用户名密码是存放在那张表里面?mysql密码采用哪种加密方式? mysql数据库默认有哪些库?说出库的名字 mysql UDF提权5.1以上版本和5.1以下有什么区别 简述Linux系统安全加固需要做哪些方面? 你使用什么工具来判断系统是否存在后门? Linux的Selinux是什么?如何设置Selinux? iptables工作在TCPIP模型中的哪层? 如果无法升级内核,那么如何保证系统不被已知的exp提权? syslog里面都有哪些日志?安装软件的日志去哪找? 如何查询ssh的登录日志?如何配置syslog的日志格式? syslog可不可以使用vi等工具直接查看?是二进制文件吗? 如果一台Linux服务器被入侵后 找到一个注入点怎么判断对方什么数据库?
1.
\u0023
是什么字符的16进制编码?为什么在payload中要用它?
- 答案:
\u0023
是Unicode编码的十六进制表示,对应ASCII字符#
。- Payload中使用原因:
- 绕过过滤:某些WAF或过滤器可能未检测Unicode编码的特殊符号(如
#
用于URL锚点或XSS闭合标签)。- 兼容性:部分场景下(如JSONP),Unicode编码可避免语法冲突。
- 扩展点:
- 其他常用编码:
%23
(URL编码)、&x23;
(HTML实体)。- 类似场景:
\u003c
(<
)用于绕过XSS过滤。
2. Java会不会发生执行系统命令的漏洞?哪些方法可能触发?
- 答案:
- 会:通过以下方法可能触发命令注入:
Runtime.exec()
:直接执行字符串命令。ProcessBuilder
:参数拼接不当导致注入。- JNI调用本地代码:间接执行系统命令。
- 漏洞示例:
java
String userInput = request.getParameter("cmd"); Runtime.getRuntime().exec("sh -c " + userInput); // 危险拼接!
- 扩展点:
- 防御方案:使用白名单校验输入,或拆分参数(
String[] cmd = {"ls", "-l"}
)。
3. 修复Java程序中的XSS漏洞应在哪一层?
- 答案:
- 修复层级:
- 输入层:对用户输入进行过滤(如移除
<script>
标签)。- 输出层:对动态内容编码(如使用
ESAPI.encoder().encodeForHTML()
)。- 框架层:Spring的
@ResponseBody
自动转义、Thymeleaf默认转义。- 扩展点:
- 使用CSP(内容安全策略)限制脚本执行。
4. Java中XSS Filter的设置位置
- 答案:
- 设置位置:
web.xml
:配置过滤器(如XSSFilter
类)。- 框架拦截器:Spring的
HandlerInterceptor
预处理请求。- 第三方库:OWASP ESAPI或Apache Commons Text的
StringEscapeUtils
。- 扩展点:
- 过滤器需覆盖请求参数(
ServletRequestWrapper
重写getParameter
)。
5. Java类反射的安全问题
- 答案:
- 安全问题:
- 访问私有方法/字段:通过
setAccessible(true)
绕过权限检查。- 动态加载恶意类:利用
Class.forName()
加载攻击代码。- 破坏单例模式:反射调用私有构造器创建多个实例。
- 防御方案:
- 启用SecurityManager并配置策略文件(
java.policy
)。
6. Java反序列化漏洞原理与解决方案
- 答案:
- 原理:反序列化不可信数据时,触发恶意Gadget链(如Apache Commons Collections的
InvokerTransformer
)。- 解决方案:
- 升级依赖库(如Commons Collections 4.1+)。
- 使用白名单验证反序列化类(如Jackson的
@JsonTypeInfo
)。- 替换反序列化方式(如JSON代替Java原生序列化)。
- 扩展点:
- 工具检测:
ysoserial
生成Payload,SerialKiller
防御库。
7. 常见Java框架
- 答案:
- Spring:核心框架,含Spring Security、Spring Boot。
- Apache Struts2:因OGNL注入漏洞(S2-045)知名。
- Hibernate:ORM框架,需防范SQL注入。
- MyBatis:需避免
${}
拼接SQL。- Play Framework:默认启用CSP。
8. Redis未授权访问漏洞利用
- 答案:
- 利用方式:
- 写SSH公钥:
config set dir /root/.ssh
→set authorized_keys "公钥"
。- 写Webshell:
config set dir /var/www/html
→set shell.php "<?php system($_GET['cmd']);?>"
。- 主从复制RCE:通过
SLAVEOF
加载恶意模块。- 扩展点:
- 防御:禁用
CONFIG
命令,绑定IP,设置密码。
9. 中间件解析漏洞利用方式
- 答案:
- IIS短文件名泄露:利用
~
字符猜测文件名。- Apache多后缀解析:
file.php.jpg
被解析为PHP。- Nginx目录穿越:错误配置
alias
导致读取敏感文件。- Tomcat PUT上传漏洞:允许上传JSP木马。
- 扩展点:
- 防御:禁用危险方法(PUT/DELETE),限制文件上传类型。
10. 常见Java中间件容器
- 答案:
- Tomcat:需删除
manager
应用,禁用AJP端口。- Jetty:默认配置较安全,但需关闭调试模式。
- WebLogic:历史漏洞多(如CVE-2020-14882)。
- JBoss:防范反序列化和JMX未授权访问。
11. Tomcat安全加固
- 答案:
- 删除
webapps
下默认应用(如docs
、examples
)。- 禁用管理界面或设置强密码(
tomcat-users.xml
)。- 限制AJP端口访问(注释
server.xml
中的AJP连接器)。- 启用HTTPS并配置强加密套件。
- 扩展点:
- 若删除后台后重启Tomcat,若应用目录仍在
webapps
下,会重新部署。
12. MySQL表权限与安全加固
- 答案:
- 额外权限:
- PROCESS:查看所有进程(可能泄露敏感信息)。
- SUPER:执行管理员操作(如
SET GLOBAL
)。- FILE:读写服务器文件(需防范UDF提权)。
- 加固方案:
- 最小权限原则,禁用
root
远程登录,启用mysql_native_password
加密。
13. SQL Server Public权限提权
- 答案:
- 提权方法:
- 利用
xp_cmdshell
执行系统命令(需启用)。- 通过
sp_oacreate
调用COM组件。- 利用CLR集成加载恶意程序集。
- 防御:禁用高危存储过程,限制CLR权限。
14. Linux系统安全加固
- 答案:
- 内核与补丁:定期更新,禁用未使用模块。
- 用户权限:禁用root SSH登录,使用sudo权限分级。
- 日志审计:配置
auditd
监控敏感操作(如文件修改)。- SELinux:启用强制访问控制,限制进程权限。
- 防火墙:
iptables
/nftables
限制端口和服务。
- 扩展点:
- 若无法升级内核,禁用危险模块(如
capability
),使用Grsecurity补丁。
15. MySQL密码存储与数据库结构
- 答案:
- 密码表:
mysql.user
,加密方式为SHA1(SHA1(password))
(5.7+使用caching_sha2_password
)。- 默认库:
information_schema
(元数据)。mysql
(用户权限)。performance_schema
(性能监控)。sys
(诊断视图)。
16. Linux入侵检测与日志分析
- 答案:
- 后门检测工具:
rkhunter
:扫描Rootkit。chkrootkit
:检测常见后门。Lynis
:全面安全检查。- SSH日志:
/var/log/auth.log
,查看sshd
登录记录。- Syslog格式:通过
/etc/rsyslog.conf
配置,支持文本格式(非二进制)。
17. 判断注入点数据库类型
- 答案:
- 方法:
- 报错信息:MySQL报错含
You have an error in your SQL syntax
。- 函数差异:
len()
(MSSQL) vslength()
(MySQL)。- 时间盲注:
sleep(5)
(MySQL) vsWAITFOR DELAY '0:0:5'
(MSSQL)。- 扩展点:
- 利用
@@version
或version()
获取数据库版本。