java-sec-code学习

配合静态代码审计工具,学习一下。

git clone https://github.com/JoyChou93/java-sec-code
cd java-sec-code
# 生成jar包
mvn clean package

修改配置文件src/main/resources/application.properties:
将数据库名,账号密码修改为mysql中有的。
参考:mysql最常用最基础的命令

# 调试模式运行
java -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=12346 -jar /home/cqq/repos/java-sec-code/target/java-sec-code-1.0.0.jar

在这里插入图片描述然后在IDEA中远程调试。

文件上传

  1. 有对文件内容开头做校验;
    public static boolean isImage(File file) throws IOException {
        BufferedImage bi = ImageIO.read(file);
        if (bi == null) {
            return false;
        }
        return true;
    }
  1. 有对上传文件后缀名做校验(白名单:{".jpg", “.png”, “.jpeg”, “.gif”, “.bmp”});
  2. 上传的图片会通过uuid生成一个’/tmp’ + uuid + '.png’这样的文件名,然后最后删除掉

通过路径穿越修改filename参数../../../../../home/cqq/repos/java-sec-code/1.png可以将带有jsp代码的图片上传到任意目录
在这里插入图片描述
在这里插入图片描述如果放在tomcat目录下,可以让tomcat解析?

相应的代码在src/main/java/org/joychou/controller/FileUpload.java
在这里插入图片描述

发布了601 篇原创文章 · 获赞 101 · 访问量 100万+

猜你喜欢

转载自blog.csdn.net/caiqiiqi/article/details/104648360
sec