DarkKnight
-
Level13 (darkknight -> bugbear)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:34
이번 문제는 RTL 기법을 이용한 문제인 것 같습니다. RET부분에 해당되는 argv[1][47]의 값이 \xbf 가 되면 안되는것 같습니다. RTL 이란? Return To Library의 약자로 동적 라이브러리 영역에 존재 하는 함수의 주소를 이용해서 바이너리에 존재하지 않는 함수를 사용할수 있도록 하는 기법입니다. 바이너리에 존재 하지 않는 함수는 system 함수, execl 함수 등이 있습니다. 이전 문제들 에서는 stack 에다가 shellcode를 넣어서 문제를 해결 했었지만 stack 의 주소를 보면 0xbf~~~~~~로 RET에 넣을수 없는 주소입니다. 그렇기 때문에 RTL 기법을 이용해서 문제를 해결 해야 합니다. 쉘을 실행하기 위해서는 쉘코드가 아닌 system 함수를 사용하는데 /b..
-
Level12 (golem -> darkknight)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:33
위의 코드를 확인해 보면 FPO 기법을 이용하는 문제 입니다. SFP는 무엇인가, FPO 기법이 무엇인가 에 대해서 먼저 공부를 해봐야 할 것 같습니다. FPO를 사용하기 위해서는 필요한 조건이 존재 합니다. 1. SFP 영역에서 1바이트 오버플로우가 반드시 일어나야 합니다. (strncpy에 보면 41-40 = 1 바이트) 2. 메인 함수 이외의 sub 함수가 필요합니다. (main 함수 이외에 problem_child 함수가 존재 한다.) SFP 란? Stack Frame Pointer의 약자로 Saved Frame Pointer 라고도 불립니다. 이전의 함수의 EBP 주소를 저장하는 공간 입니다. 1바이트를 이용해서 OverFlow를 실행해야 하는데, 여기서 1바이트는 SFP의 첫 바이트를 이야기 ..
-
[Lord of SQL_injection] #12 darkknight$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:16
이번문제는 blind sql injection 문제인데... 11번 문제였던 golem문제 에서의 필터링과 매우 비슷합니다. 하지만 더 추가된 것 같습니다. pw 에서의 필터링은 ' 인것 같습니다. no 에서의 필터링은.. ' , substr , ascil, = 인것 같습니다. ?no=0 or id like 0x61646d696e 위의 문자열을 get방식으로 전송하면서 blind sql injection 코드를 작성해 보겠습니다. ascii 함수가 안된다면 ord 함수로 우회하시면 됩니다.! password를 입력해 보겠습니다.