bugbear
-
Level14 (bugbear -> giant)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:37
소스코드를 확인해 보면 좀 길어졌습니다. RTL2로 RTL을 이용하는 2번째 문제인것 같습니다. 주석을 위아래로 싸고 있는 코드를 살펴 보면 execve의 주소를 가져오는 기능을하는 코드라는 것을 확인 할 수 있습니다. 또한 RET에 execve의 주소를 넣지 않으면 안된다는 것을 알 수 있습니다. 하지만 문제가 되는 부분이 있습니다. 아래의 코드는 /home/giant/assassin에 접근을 하는 코드인데 기존에 tmp에 실행파일을 복사 해서 문제를 해결 했었는데 권한을 가질 수 없습니다. 그렇기 때문에 실행파일을 복사해서 문제를 해결할 수 없습니다. 그렇기 때문에 소스코드를 복사해서 소스코드를 좀 수정해서 컴파일을 해야 할 것 같습니다. 아래의 경로부분을 수정해 주면 됩니다. gcc를 이용해서 컴파..
-
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..
-
[Lord of SQL_injection] #13 bugbear$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:17
이번문제는 blind sql injection 문제 입니다. 필터링 문자열이 단계면 단계마다 많아지 는것 같습니다... pw에는 ' 가 필터링 되고, no에는 ' , substr , ascii , = , or , and , 공백 , like , 0x 를 필터링 시킵니다. 저번 blind에서 사용한 like와 0x전부를 못쓰게 하네요... 이번 문제의 필터링을 우회할수 있는 문자열을 찾아 봅시다.! ?no=0||id%0ain%0a("admin") ' 은 "로 우회하고 =과 like는 in으로 우회했습니다. 그렇다면 이제 pw의 길이와 값을 알아내는 코드를 작성해 봅시다! 실행 결과 :