Hack/Pwnable
-
Got Overwrite Using puts@gotHack/Pwnable 2015. 9. 15. 02:16
소스는 이렇다. #include #include int main(int argc,char *argv[]){char buf[32];strcpy(buf,argv[1]);puts("/bin/sh");} strcpy로 argv[1]을 복사해주는 프로그램이다.got overwrite를 쉽게해주기위해 /bin/sh를 출력해준다. 여기서 puts@got를 system주소로 바꿔 /bin/sh를 실행시킬거다. 그럴려면 우선 아래와같은 가젯들이 필요하다. puts@got = 0x804a010strcpy@plt = 0x8048310ppr = 80484def7 = 80484d6e5 = 80483e46c = 8048155d0 = 8048440 구성 페이로드는 아래와같다. "\x90"*buffersize + strcpy@plt..
-
-
-
Windows Buffer OverFlowHack/Pwnable 2015. 8. 12. 03:36
#include #include void true1() {printf("True");}void false1() {printf("false1");}int main() {char pw[10];printf("Input Password: ");gets(pw);if(strcmp(pw,"buf") == 0){true1();}else {false1();}return 0;} 매우 기초적인 소스이다.올리디버거를 켜보자 A를 20개를 넣으면 EIP가 정상적으로 변조된다. 우리는 올바른 패스워드를 입력하지않고 RET를덮어 TRUE를 출력할것이다. 우선 TRUE함수의 주소는 401000이다.우리는 00401000으로 덮어주면되는데, 아스키 코드표를 참조하되 HEX를 보아야한다. 또, 리틀엔디언으로 집어넣어주어야한다.00401..
-
-
PinTool 설치Hack/Pwnable 2015. 7. 24. 13:56
https://software.intel.com/en-us/articles/pintool-downloads 핀툴을 다운로드받는다. 자신의 VS버전을확인해야하는데, C드라이브 -> Program Files -> Visual Studio ??.0을 확인하고 핀툴사이트에서 v??를 받아주면된다. 그리고 VS로 source -> tools디렉터리에있는 소스중 하나를 선택하여 컴파일을 하면 dll이 생기게된다. VS 컴파일중오류가 나면, include디렉터리안에있는 모든거을 그 소스파일있는곳으로 옮겨준후, gen폴더안에있는것도 꺼내준다. 그러면 정상적으로 컴파일이되는데, dll이 파일을 쓰면된다. SAFESEH 오류가 난다면, 프로젝트속성 -> 링커 -> 명령줄에서 /safeseh:no를 입력하고 적용후 컴파일하..