Bookstore.java - DCTF 22
Bookstore.java 챌린지는 다음과 같이 명시했습니다.
Web developer left the company becouse he was not being paid. He left some hidden features for him, to bypass security. Can you find the vunerability? http://book-store.dragonsec.si
그리고 우리에게
book_store.jar
파일을 주었습니다.로그포북
디컴파일러(예: JD-GUI )로 jar 파일을 열면 로그 분석기에 취약점이 있음을 알 수 있습니다.
Pattern pattern2 = Pattern.compile("get\\{.*\\}salt=" + System.getenv("SALT"));
Matcher matcher2 = pattern2.matcher(mssg);
String substring2 = null;
if (matcher2.find()) {
substring2 = matcher2.group();
}
if (substring2 != null) {
downloadFile(substring2.substring(substring2.indexOf(123) + 1, substring2.indexOf(125)));
}
로그 문자열에 템플릿
get{...}salt=
과 env varSALT
가 포함된 경우 프로그램은 헤더{...}
와 env varNot-Found:
를 값으로 사용하여 NOT_FOUND
사이의 URL에 HTTP 요청을 보내려고 시도합니다.URL link = new URL(url);
link.toURI();
HttpURLConnection conn = (HttpURLConnection) link.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("not-found", System.getenv("NOT_FOUND"));
소금 찾기
힌트가 제공됩니다.
Method how the salt is generated is given through variable names in one java class. The salt is 8 chars long.
클래스
Art
를 보면 두 가지 이상한 변수 이름이 있음을 알 수 있습니다.> String frequency = fontType.getValue();
int analysis_should_be_fun = findImageWidth(textHeight, artText, frequency);
생성: 빈도 분석은 재미있어야 합니다.
주파수 분석
결과가 없는 셰익스피어 연극의 빈도 분석에 대한 몇 가지 연구를 찾은 후 소금이 8자이며 웹사이트와 파일
book.json
에 제시된 페이지에 정확히 8개의 단락이 있다는 힌트를 기억합니다.각 단락에서 가장 많이 반복되는 문자를 연결하면 소금을 얻은 다음 프로그램이 플래그로 URL을 ping하도록 할 수 있습니다.
Salt:
oeeeeooo
Flag:
dctf{L0g_4_hid3n_d@7@\_n0t\_s0\_h@rd_righ7}
Reference
이 문제에 관하여(Bookstore.java - DCTF 22), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vaiton/bookstorejava-dctf-2022-5em9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)