nebula_level04

해킹/시스템 2015. 10. 28. 23:12

nebula_level04 포스팅입니다.



flag04 프로그램과 token이 들어있습니다. 그냥 실행시키려니 읽을 파일을 달라길래 token을 줘봤습니다.

뱉어버리네요. 역시 이렇게 간단할리가 없습니다.

그럼 gdb로 flag04를 열어서 차분히 보려 했으나...




//출처:https://www.mattandreko.com/2011/12/05/exploit-exercises-nebula-04/


자! 드디어 어셈분석에 한계를 느껴서 코드를 업어왔습니다. 이거 원래는 nebula 공홈이나 어딘가에 힌트로 있어야 하는 것 같습니다. 제가 치팅하는게 아닙니다... 아닐겁니다.

여담이지만 wirte-up 보기 싫어서 꺼내서 디컴파일할까도 생각을 해봤는데 권한문제때문에 바이너리를 가지고 나가는 것도 안되더군요..



아무튼 뭐 코드를 보니 argv로 token의 경로를 받아서 읽어주는 프로그램이군요. 아이러니한 점은 2번째 if문에서 인자값에 "token"문자열이 들어가면 안되는데 뒷쪽에서 open 함수를 호출하기 위해서는 token이 들어가는 경로가 필요하다는 것입니다.

즉 token을 실행시켜야 하지만 token이라는 이름이 들어가면 안됩니다. 볼드모트같은 건가?


심볼릭 링크를 사용하면 간단하게 우회할 수 있을 것 같습니다.





/tmp 밑에 /home/flag04/token을 가리키는 심볼릭 링크 flag04_tok을 만들어주고 이것을 flag04 프로그램의 인자로 전달해주면 알수없는 문자들이 나옵니다.




사실 이부분에서 개연성이 다소 부족하기는 하지만 저게 비밀번호일 거라는 생각을 했습니다.

su로 flag04로 로그인~ 복붙~ 성공입니다.


끝-


'해킹 > 시스템' 카테고리의 다른 글

nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
nebula_level03  (0) 2015.10.28
nebula_level02  (0) 2015.10.28
nebula_level01  (0) 2015.10.28
Tags
Social