利用DeepSeek进行java代码审计,好用!

首先给大家放一段简单Java源码大家可以自行试试能否审计出漏洞:

public static String processbuilderVul(String filepath) throws IOException {    String[] cmdList = {"sh", "-c", "ls -l " + filepath};
    ProcessBuilder pb = new ProcessBuilder(cmdList);    
    pb.redirectErrorStream(true);    
    Process process = pb.start();    // 获取命令的输出    
    InputStream inputStream = process.getInputStream();    
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));          
    String line;    
    StringBuilder output = new StringBuilder();    
    while ((line = reader.readLine()) != null) 
{        
    output.append(line).append("\n");    
}    
    return output.toString();
}

行三可知利用ProcessBuilder调用行二中可以审到的ls命令进行查看文件,因为存在filepath参数,攻击者可在此拼接恶意代码进行攻击,接下来让我们看看DeepSeek的审计过程:
在这里插入图片描述

在审计过程中给予了我们具体的payload思路和多种利用方式,我们可以尝试DeepSeek的思路构建参数:

filepath=/tmp;id

我们使用;进行命令拼接,前半段他会正常执行代码中的ls命令读取查看/tmp随后因为我们使用特殊符号拼接了恶意命令所以执行完ls就会执行id:
在这里插入图片描述

DeepSeek还提供了多种的修复方式:
在这里插入图片描述
再来试试序列化代码:

public String cc(String base64) {    
try {        
base64 = base64.replace(" ", "+");        
byte[] bytes = Base64.getDecoder().decode(base64);        
ByteArrayInputStream stream = new ByteArrayInputStream(bytes);        
// 反序列化流,将序列化的原始数据恢复为对象       
ObjectInputStream in = new ObjectInputStream(stream);       
 in.readObject();        in.close();        return "反序列化漏洞";    
 } catch (Exception e) {       
  return e.toString();   
   }
   }

java中的readObject可以读取输入,并且把它们转换对象,而ObjectInputStream.readObject()是将输入流中读取需要,再将其反序列为对象,这也就符合反序列化漏洞的特征,而要注意的就是代码中会把读取的输入用Base64解密,所以我们要构建payload时应是Base64加密的。然后再一起看看DeepSeek的审计:
在这里插入图片描述
同样,DeepSeek漂亮的完成的审计工作,并且再次为我们提供了攻击思路和方法:
先生成payload:
在这里插入图片描述

?base64=rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAABc3IADGphdmEubmV0LlVSTJYlNzYa/ORyAwAHSQAIaGFzaENvZGVJAARwb3J0TAAJYXV0aG9yaXR5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAEZmlsZXEAfgADTAAEaG9zdHEAfgADTAAIcHJvdG9jb2xxAH4AA0wAA3JlZnEAfgADeHD//////////3QAEDZraGRjby5kbnNsb2cuY250AABxAH4ABXQABGh0dHBweHQAF2h0dHA6Ly82a2hkY28uZG5zbG9nLmNueA==

随后执行看看效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后给大家放一个未授权访问漏洞,也是我在实战中经常遇到的漏洞:

@Overridepublic void addInterceptors(InterceptorRegistry registry) {    registry.addInterceptor(new LoginHandlerInterceptor())    
.addPathPatterns("/**")    
.excludePathPatterns("/vulnapi/unauth/**", "/css/**", "/js/**", "/img/**");
}

DeepSeek审计:
在这里插入图片描述

构建payload:

/vulnapi/unauth/api/info

在这里插入图片描述
成功访问!
在这里插入图片描述
总结
在此前笔者也用过许多星火,Chatgpt等等智能大模型,经过逐个迭代它们的代码审计能力也大幅提升,但如今DeepSeek横空出世,在使用时可以明显感受到的是DeepSeek所输出的内容更加细化,在使用星火写代码或是审计代码时它出现的最大的问题就是逻辑不清晰,所以需要我们花费更多时间去构建自己的语言让其理解我们的想法,但DeepSeek很好的优化了逻辑能力,大大缩减了我们在这上面所花费的时间,在使用时唯一感到不足的就是DeepSeek因为近期众所周知的攻击事件回复速度大幅增加,有很长一段时间还会处于超时状态,希望DeepSeek能早日度过难关让中国AI技术紧跟并领先世界先进水平!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值