---
# System prepended metadata

title: Untitled

---

## Erkenntisse Chris & Nico 16.12 / 17.12

Spannende PDF - Serialisierung (Kein Plan wie seriös... aber spannend):  
https://insomniasec.com/cdn-assets/Deserialization_-__What_Could_Go_Wrong.pdf  

Noch so n Vortrag:  
https://cheatsheetseries.owasp.org/assets/Deserialization_Cheat_Sheet_GOD16Deserialization.pdf

Blog Entry:  
https://snyk.io/blog/serialization-and-deserialization-in-java/


Gist mit Code zum Serialisieren und Deserialiseren:  
https://gist.github.com/nonchris/16c36a13ecf71dcfb1d68d37eea310fb

#### Beispiel erstellt mit dem Code:  

Class mit `(649999, "Hello world")`:  
```java=
class Ser implements java.io.Serializable
{
    public int a;
    public String b;

    public Ser(int a, String b)
    {
        this.a = a;
        this.b = b;
    }

}
```

Serialisiert:  
`cat obj2-lage_num.ser | xxd`
```
aced 0005 7372 000f 636f 6d2e 636f 6d70  ....sr..com.comp
616e 792e 5365 72ce d181 134d dbd5 0e02  any.Ser....M....
0002 4900 0161 4c00 0162 7400 124c 6a61  ..I..aL..bt..Lja
7661 2f6c 616e 672f 5374 7269 6e67 3b78  va/lang/String;x
7000 09eb 0f74 000b 4865 6c6c 6f20 776f  p....t..Hello wo
726c 64                                  rld
```

Serialisierte Klassen scheinen immer(?) mit `aced 0005 7372` zu beginnen.  
Nico ist es gelungen die Zahl in der `.ser` Datei so zu modifizieren, dass etwas anderes beim deserialisieren rauskam.  

Skizze von Nico:  
![](https://i.imgur.com/0xFIW22.png)

### Docker-Compose für LDAP by Nico:  

.env file mit den Variablen erstellen oder direkt setzen in yml.
```yaml=
version: "3.7" # ggf. runtersetzen falls docker-compose zu alt

services:
  openldap:
    image: osixia/openldap
    container_name: openldap
    security_opt:
      - no-new-privileges:true
    restart: always
    networks:
      ldap:
        aliases:
          - openldap
        ipv4_address: 10.0.16.100
    volumes:
      - ./openldap-data:/var/lib/ldap
      - ./openldap-config:/etc/ldap/slapd.d
    environment:
      - LDAP_DOMAIN=$DOMAIN_NAME0
      - LDAP_ADMIN_PASSWORD=$LDAP_ADMIN_PASSWORD
      - LDAP_CONFIG_PASSWORD=$LDAP_CONFIG_PASSWORD
      - LDAP_ORGANIZATION=$DOMAIN_NAME0
      - LDAP_READONLY_USER=true
      - LDAP_READONLY_USER_USER=reader
      - LDAP_READONLY_USER_PASSWORD=$LDAP_READONLY_USER_PASSWORD
      - LDAP_TLS=false

  phpldapadmin:
    image: osixia/phpldapadmin
    container_name: phpldapadmin
    security_opt:
      - no-new-privileges:true
    networks:
      - ldap
    restart: always
    ports:
      - 8081:80 # Webinterface auf 0.0.0.0:8081
    environment:
      - PHPLDAPADMIN_HTTPS=false
      - PHPLDAPADMIN_LDAP_HOSTS=openldap

networks:
  ldap:
    ipam:
      driver: default
      config:
        - subnet: 10.0.16.0/24

```