darknight(3)
-
12. LOS - darknight
LOS11번째문제 darknight입니다. 이전과 달라진 점들은 ascii까지 필터링이 먹었다는 것입니다.이것 또한 구글링을 해보니 ascii -> ord로 가능하다는 사실을 습득! ㅎ 아래는 페이로드입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import requestsimport string num_alpha = string.digits + string.ascii_letterspassword = "" #find length passwdresetURL = "http://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574..
2018.08.09 -
LOB - 13. darkknight-> bugbear
이번문제 코드를 보자마자 기분이 좋았습니다. :)마찬가지로~~ 로그인을 합니다. \ 코드를 살펴봅니다. 간단하게 해석하면 리턴 맨앞을 "\xbf"로 맞춰주고, 인자는 1개이상 넣어줘야겠군요.하지만 (stack betrayed you!!\n");부분을 보니 스택은 사용이 안되겠군요 ㅠ저번 2번문제를 RTL로 풀었던 기억이 나네요.. 그대로 하면 됩니다. RTL기법을 이용해서 쉘을 탈취한다. RTL기법이란 (Return-to-Libc)의 약자로 리턴을 libc로 주는 것이다.함수가 실행될때에는 system이라는libc를 사용하게되는데. 이 함수내에는 우리가 원하는 "/bin/sh"도 포함이 되어있다.ASLR이 적용되어있지않아서 저 함수가 실행되게끔 이동하게된다면 shell을 얻을 수 있을 것이다.RTL기법이..
2018.07.30 -
LOB - 12. golem -> darkknight
이번에는 darkknight입니다. 먼저 로그인을하고, 소스코드를 봐봅시다! 이번에는 소스는 간단해보입니다.그런데 char buffer은 40byte의 버퍼를 가지고있는데strncpy는 41개를 넣으니 여기서 취약점이 발생할거 같네요. 메인에 bp를 걸고 살펴보려고하였으나.. 취약점이 main에서 나오는 것이 아니라 함수 내에서 발생하므로 함수 내부를 살펴보아야 할 것 같습니다. problem_child()함수 내에 끝나는 부분에 bp를 걸고, 스택 바로뒤에있는 리턴부분이 0xbffffaa4쪽으로 가면 스택부분이 실행되므로, 스택부분에 쉘코드를 넣어주고, 리턴값 1byte 를 바꾸어주면 될 것 같습니다. success.!
2018.07.30