2025年渗透测试面试题总结-66(题目+回答)

发布于:2025-09-13 ⋅ 阅读:(20) ⋅ 点赞:(0)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

一、信息搜集方法与工具

二、未解析DNS的网站入侵

三、常见中间件及漏洞

四、端口扫描关键目标

五、PHP弱类型漏洞

六、大型CMS审计案例

七、PHP特性相关漏洞

八、SQL注入写文件方法

九、特殊位置SQL注入

十、缓冲区溢出原理

十一、绕过ASLR+DEP防护

防御对抗演进

1、如何进行信息搜集,用过哪些工具
2、对没有挂到DNS上的网站如何进行入侵
3、有哪些常见的中间件,相关漏洞
4、端口扫描时,都关注哪些端口,分别代表什么
5、针对PHP的弱类型,有哪些漏洞
6、代码审计方面,有过对大型CMS的审计吗,发现过哪些漏洞
7、针对PHP的语言特点,说几个常见的漏洞
8、SQL注入,如何写入文件
9、SQL注入,如果注入点在union或order by之后,怎么办
10、陈述一下缓冲区溢出
11、如果对方开启了ASLR和DEP,要如何绕过

一、信息搜集方法与工具

  1. 被动搜集
    • 工具:Whois查询(DomainTools)、SSL证书分析(Censys)、历史DNS记录(SecurityTrails)、威胁情报(Shodan, VirusTotal)
    • 关键点:通过证书透明度日志发现子域名,利用Wayback Machine获取网站历史快照。
  2. 主动扫描
    • 工具:Nmap(端口/服务扫描)、Masscan(高速扫描)、Sublist3r(子域名枚举)、Wappalyzer(技术栈识别)
    • 技巧:结合ASN信息扫描目标IP段,使用DNS爆破工具(如dnsrecon)针对未解析域名。

二、未解析DNS的网站入侵

  1. IP发现
    • 通过关联资产:历史解析记录、同一主机上的其他域名、SSL证书关联IP
    • 工具:Censys搜索目标证书指纹,ZoomEye根据关键词定位IP
  2. 端口渗透
    • 若网站运行在非常规端口(如8080),通过全端口扫描(Nmap -p-)识别Web服务
    • 利用Host头部攻击:修改HTTP请求头访问未绑定域名的虚拟主机

三、常见中间件及漏洞

中间件 高危漏洞案例 利用场景
Apache CVE-2021-41773(路径遍历) 配置错误导致文件泄露
Nginx CVE-2013-2028(栈溢出) 低版本解析漏洞
Tomcat CVE-2017-12615(PUT文件上传) 写Webshell获取权限
IIS CVE-2015-1635(HTTP.SYS RCE) 远程代码执行
WebLogic CVE-2020-14882(未授权命令执行) 反序列化漏洞利用链

四、端口扫描关键目标

端口 服务 渗透意义
22 SSH 弱口令爆破/密钥泄露
80/443 HTTP/HTTPS Web漏洞入口点
445 SMB 永恒之蓝类漏洞(MS17-010)
3306 MySQL SQL注入/未授权访问
6379 Redis 未授权访问导致写SSH密钥
11211 Memcached UDP反射攻击载体
27017 MongoDB 配置不当导致数据泄露

五、PHP弱类型漏洞

  1. 比较漏洞

    phpif ("0e123456" == 0) // true (哈希值比较绕过)
    • 场景:密码哈希比较(如MD5('240610708') = 0e462097431906...)
  2. 哈希碰撞

    • 利用不同字符串生成相同MD5(如"±"和"Á"),绕过身份验证
  3. switch匹配绕过

    phpswitch("admin") { case 0: // 进入此分支(字符串转数字为0) }
  4. in_array()缺陷

    phpin_array("1admin", [0,1,2]) // true (字符串被强制转整型)

六、大型CMS审计案例

目标系统:WordPress 5.7 (CVE-2021-29447)
漏洞类型:XXE(XML外部实体注入)
触发点:媒体文件解析时未禁用外部实体
利用链

  1. 上传包含恶意DTD的WAV文件
  2. 触发XML解析时读取服务器敏感文件(如/etc/passwd)
  3. 通过OOB外带数据(Out-of-Band)

其他案例

  • Joomla! 反序列化漏洞(CVE-2015-8562)
  • Drupal SA-CORE-2018-002(远程代码执行)

七、PHP特性相关漏洞

  1. 文件包含漏洞
    • 利用include($_GET['file']) 加载恶意远程文件(需allow_url_include=On)
    • 伪协议利用:php://filter/convert.base64-encode/resource=/etc/passwd
  2. 反序列化漏洞
    • 触发__destruct()__wakeup()魔术方法执行危险操作
    • 经典案例:Typecho 1.1反序列化RCE
  3. 变量覆盖
    • extract($_POST)导致用户可控变量覆盖关键参数
    • parse_str()函数未初始化变量

八、SQL注入写文件方法

适用数据库:MySQL(需secure_file_priv为空)

sqlUNION SELECT 1,"<?php system($_GET[cmd]);?>" INTO OUTFILE "/var/www/shell.php" 

写入条件

  • 数据库用户需有FILE权限
  • 目标目录可写且Web服务器可解析
  • 路径需绝对路径(可通过@@datadir等查询获取)

九、特殊位置SQL注入

注入点在UNION/ORDER BY后

  1. ORDER BY注入
    • 布尔盲注:?order=(case when (select substr(user(),1,1)='r') then id else name end)
    • 时间盲注:?order=if(1=1,sleep(0),sleep(5))
  2. UNION后注入
    • 利用嵌套查询:UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b
    • 结合报错注入:UNION SELECT extractvalue(1,concat(0x7e,(select user())))

十、缓冲区溢出原理c

void vuln(char *input) { char buffer[64]; strcpy(buffer, input); // 无长度检查导致溢出 }

攻击流程

  1. 填充超长数据覆盖返回地址
  2. 将返回地址指向恶意Shellcode地址
  3. 覆盖栈中函数指针或SEH链(Windows)
    关键结构
[填充字符][覆盖返回地址][NOP雪橇][Shellcode]

十一、绕过ASLR+DEP防护

  1. 信息泄露获取基址

    • 利用格式化字符串漏洞泄露内存地址
    • 通过未启用PIE的模块计算偏移(如glibc)
  2. ROP链构造(Return-Oriented Programming)

    pytho# 示例:调用system("/bin/sh") rop_chain = [ pop_rdi_ret, # 弹出栈数据到RDI binsh_addr, # "/bin/sh"字符串地址 system_addr # 跳转到system函数 ]
  3. JIT喷射攻击

    • 在可执行内存区域(如JavaScript JIT区域)布置Shellcode
    • 利用Heap Spray填充大量恶意指令地址
  4. 数据执行保护绕过

    • 使用Return-to-libc技术调用系统函数
    • 结合mprotect() 修改内存页为可执行属性

防御对抗演进

  • ASLR绕过成功率:Linux系统熵值不足时可达80%(通过暴力破解地址)
  • 现代防护:CFG(控制流防护)、SafeSEH、Shadow Stack等技术增加绕过难度
  • 趋势:漏洞利用逐渐转向逻辑漏洞和供应链攻击,降低对内存漏洞的依赖