Sh4n3e
이번 문제는 앞의 문제와는 다르게 execve()함수를 이용해서 RTL을 진행해야한다.execve()함수의 속성을 알기위해서는 아래의 주소를 참조한다. 문자열 "/bin/sh" 의 주소값을 얻는 방법과 execve()함수의 주소를 얻는 방법은 이전 문제에서 진행했던것과 동일하다. http://linux.die.net/man/3/execve 아래는 해당 문제의 C코드와 어셈블 코드가 있다. [bugbear@localhost bugbear]$ cat giant.c /* The Lord of the BOF : The Fellowship of the BOF - giant - RTL2*/ #include #include #include main(int argc, char *argv[]){char buffer[40..
해당 문제는 BOF에 Basic RTL을 보면 좀더 쉽게 이해할 수 있다. 아래는 진행관련해서 순서적으로 나열했다. [darkknight@localhost darkknight]$ cat bugbear.c /* The Lord of the BOF : The Fellowship of the BOF - bugbear - RTL1 */ #include #include main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack betrayed you!!\n"); exit(0); } strcpy(buffer, arg..
input box아래에 "select szPwd from T_Web13 where nIdx = '3' and szPwd = '"&pwd&"'"가 존재하는 것을 보면, 이 부분은 SQL Injection으로 풀어야 하는 것을 깨달을 수 있다. 우리가 기본적으로 아는 ‘ or 1 = 1 -- 을 넣었을 때, 다음과 같이 NO! hacking!이라는 Alert창이 뜬다. 이것은 기본적인 SQL injection을 막아놨다라고 봐도 무방하다. SQL injection의 원리는 결국 위의 Query문을 참(True)로 만들어 우회하는 것을 목적으로 한다. 따라서 우리는 다른 방법으로 참을 만들어야 함을 깨닫게 된다. select szPwd from T_Web13 where nIdx = '3' and szPwd =..