
RememberMe 패딩 오라클 취약점 RCE
cookie의 rememberMe는 AES-128-CBC 모드로 암호화되어 있으며, padding oracle 공격에 취약합니다.
공격자는 유효한 RememberMe 쿠키를 Padding Oracle Attack의 접두사로 사용한 다음, 정교하게 제작된 RememberMe를 만들어 SHIRO-550과 같은 Java 역직렬화 공격을 수행할 수 있습니다.
웹사이트에 로그인하고 쿠키에서 RememberMe를 획득합니다.
RememberMe 쿠키를 Padding Oracle Attack의 접두사로 사용합니다.
Padding Oracle Attack을 통해 정교하게 제작된 RememberMe를 만들기 위해 ysoserial의 직렬화 페이로드를 암호화합니다.
역직렬화 공격을 실행하기 위해 새로운 RememberMe 쿠키로 웹사이트에 요청합니다.
공격자는 RememberMe 암호화에 사용된 암호화 키를 알 필요가 없습니다.
1.2.5,
1.2.6,
1.3.0,
1.3.1,
1.3.2,
1.4.0-RC2,
1.4.0,
1.4.1
root@kali:/opt/tomcat/apache-tomcat-8.5.47/webapps/samples-web-1.5.0-SNAPSHOT# cat ./WEB-INF/shiro.ini |grep cipherKey
# We need to set the cipherKey, if you want the rememberMe cookie to work after restarting or on multiple nodes.
securityManager.rememberMeManager.cipherKey = kPH+bIxk5D2deZiIxcaaaA==
./WEB-INF/lib/commons-beanutils-1.9.4.jar
./WEB-INF/lib/commons-codec-1.13.jar
./WEB-INF/lib/commons-collections-3.2.2.jar
./WEB-INF/lib/jcl-over-slf4j-1.7.26.jar
./WEB-INF/lib/log4j-1.2.17.jar
./WEB-INF/lib/shiro-cache-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-config-core-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-config-ogdl-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-core-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-crypto-cipher-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-crypto-core-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-crypto-hash-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-event-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-lang-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/shiro-web-1.5.0-SNAPSHOT.jar
./WEB-INF/lib/slf4j-api-1.7.26.jar
./WEB-INF/lib/slf4j-log4j12-1.7.26.jar
./WEB-INF/lib/taglibs-standard-impl-1.2.5.jar
./WEB-INF/lib/taglibs-standard-spec-1.2.5.jar