Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ysoserial-modified — 이 저장소에는 잘 알려진 Java 역직렬화 공격 도구인 ysoserial에 대한 제 업데이트가 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/pimps/ysoserial-modified
Penetration Testing FrameworksExploit FrameworksWeb Application ExploitationPayload Development
GitHubpimps/ysoserial-modified

ysoserial-modified

이 저장소에는 잘 알려진 Java 역직렬화 공격 도구인 ysoserial에 대한 제 업데이트가 포함되어 있습니다.

저장소 보기
189404년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ysoserial-modified

이것은 여기에서 찾을 수 있는 원본 ysoserial 애플리케이션의 포크입니다: https://github.com/frohoff/ysoserial

수정 사항 설명

Java에서 Runtime.getRuntime().exec(String.class)가 동작하는 방식 때문에, 파이프를 제어하거나 출력을 파일로 보내야 하는 중첩되고 복잡한 명령(예: cat /etc/passwd > /tmp/passwd_copy)은 작동하지 않습니다. Runtime 클래스의 exec() 메서드에 의해 실행되는 명령이 터미널 환경 내에서 실행되지 않기 때문입니다. 한 가지 가능한 해결 방법은 "/bin/sh -c 'command'"를 실행하는 것이지만, ${IFS}를 사용하여 'command'의 공백 문자를 이스케이프해야 합니다. 그렇지 않으면 예상대로 작동하지 않습니다. 해당 문제와 가능한 해결 방법에 대한 자세한 내용은 세부 사항을 깊이 다루는 이 블로그 게시물을 읽어보세요.

이 문제를 해결하는 좋은 방법은 String 배열을 기대하는 Runtime.getRuntime().exec(String[].class) 메서드에 인수를 전달하는 것입니다. 가장 좋은 옵션은 다음을 실행하는 것입니다: Runtime.getRuntime().exec(new String[] {"/bin/sh", "-c", "command"}). 이렇게 인수를 전달하면 java는 /bin/bash를 실행하면서 -c와 'command' 인수를 올바른 방식으로 전달한다는 것을 이해하고 터미널 환경 내에서 명령을 실행합니다. 이를 통해 중첩되거나 복잡한 명령(| 또는 ; 사용)을 사용할 수 있고 입력과 출력(< 및 > 사용)도 제어할 수 있습니다.

이를 바탕으로 ysoserial에 명령 실행에 사용할 터미널 유형(cmd / bash / powershell 또는 none)을 지정하는 기능을 추가했습니다. 이 수정 버전은 해당 터미널 컨텍스트 내에서 명령을 실행하므로 모든 복잡한 명령을 의도한 대로 실행할 수 있습니다!

사용법

root@kitploit:~
pimps@Scorpion:~/git/ysoserial-modified/target$ java -jar ysoserial-modified.jar 
Y SO SERIAL?
Usage: java -jar ysoserial-[version]-all.jar [payload type] [terminal type: cmd / bash / powershell / none] '[command to execute]'
   ex: java -jar ysoserial-[version]-all.jar CommonsCollections5 bash 'touch /tmp/ysoserial'
	Available payload types:
		BeanShell1 [org.beanshell:bsh:2.0b5]
		C3P0 [com.mchange:c3p0:0.9.5.2, com.mchange:mchange-commons-java:0.2.11]
		CommonsBeanutils1 [commons-beanutils:commons-beanutils:1.9.2, commons-collections:commons-collections:3.1, commons-logging:commons-logging:1.2]
		CommonsCollections1 [commons-collections:commons-collections:3.1]
		CommonsCollections2 [org.apache.commons:commons-collections4:4.0]
		CommonsCollections3 [commons-collections:commons-collections:3.1]
		CommonsCollections4 [org.apache.commons:commons-collections4:4.0]
		CommonsCollections5 [commons-collections:commons-collections:3.1]
		CommonsCollections6 [commons-collections:commons-collections:3.1]
		FileUpload1 [commons-fileupload:commons-fileupload:1.3.1, commons-io:commons-io:2.4]
		Groovy1 [org.codehaus.groovy:groovy:2.3.9]
		Hibernate1 []
...

다운로드 / 설치

이 저장소의 /target 디렉토리에서 컴파일된 jar를 다운로드하거나 여기를 클릭하세요.

직접 컴파일하려면:

Java 1.7+ 및 Maven 3.x+ 필요

root@kitploit:~
$ git clone https://github.com/pimps/ysoserial-modified.git
$ cd ysoserial-modified
$ mvn clean package -DskipTests

jar 파일은 target 디렉토리에 위치합니다.

도구 다운로드