Pwnable/Pwnable.kr
-
-
-
pwnable.kr uafPwnable/Pwnable.kr 2017. 3. 11. 14:20
위쪽 rbp - 0x38 부분인 m 객체를 잘 보면된다. m 객체부분이 시작되는 +265 부터 브포를 갈거 한줄한줄 rax 값을 보기로 하였다. 보니깐 give_shell 부분이 있다 !그리고 그 아래에서 rax + 0x8 를 한다. introduce 부분이다. 우리는 이 부분에서 rax + 0x8를 한 부분을 호출하는것을 알 수 있다. 브포를 걸고 확인해보자 (QWER 파일에는 AAAA를 적음) 우리가 입력한 QWER("AAAA")가 재활용되면서(UAF)가 일어날것이다.그리고 이렇게 AAAA가 입력한상태로 간다면 AAAA + 0x8 를 한 AAB2를 call 할것이다. 그럼 우리는 입력한 값 + 0x8를 했을때 give_shell 함수가 되게끔 해야된다. = 0x401568 FLAG_GET !!!!!!..
-
pwnable.kr blackjackPwnable/Pwnable.kr 2017. 3. 5. 13:02
blackjack 라는 게임을 하는 문제이다.1번이 게임시작 2번이 룰 3번이 종료 1번을 눌러 게임을 시작하게 되면 이런식으로 입력받는데 간단하게 하면 이 부분에서 소스 실수가 있어 의도치 않은 오류? 가 생긴다. 이런식으로 Bet 입력 값이 자신이 가지고 있는 값보다 큰지 확인을하고 바로 입력을 받기 때문에 엄청 큰 값을 입력하고 한번 더 그 큰값을 입력해서 이기면 부자가 될수있다. 이런식으로 된다. WIN ! 이기면 플래그가 나온다.
-
-
pwnable.kr mistakePwnable/Pwnable.kr 2017. 2. 27. 01:46
문제를 보면 hint : operator priority(우선순위) 가 있다. 우선순위를 찾아보면 알겠지만 fd 변수를 다르는 부분에서 오류가 생긴다. 바로 우선순위가 1.< 2. = 라는 뜻이다. 원래 저 소스를 짤떄 바라던 것은 open 함수로 파일을 열고 그 것의 파일디스크립터(반환값) 을 fd에 넣고 그 값이 0 보다 작은지 확인 하기위한것이었을것이다. 그래서 open 함수는 오류가 나지 않고 OPEN이 성공하면 음수가아닌 1234~~.. 처럼 양수로 되는데 그 양수는 0보다 작지 않기 떄문에 FALSE(0) 이 된다. 그럼 그 FALSE 값인 0이 FD변수에 들어가게 된다. 그래서 FD(파일디스크립터) 는 0이된다. 파일 디스크립터는 0입력 1출력 2오류 3.. 4소켓 이런식으로 된다. 그럼 l..
-
-
pwnable.kr cmd1Pwnable/Pwnable.kr 2017. 1. 23. 19:06
코드인젝션 문제이다. ` 이거 $ 이거 환경변수 등 여러개가 안막혀있다. 대표적으로 두가지 방법이 있다. 첫번쨰로는 와일드카드, 두번쨰로는 환경변수 사용이있다. 첫번쨰 줄이 와일드 카드를 쓰는 방법이다. cat f* 란 f로 시작하는 파일을 cat 한다는 뜻이다. 와일드카드는 이런식으로 자신이 적은 패턴과 해당하는것들을 찾을떄 쓰인다. f라는 단어로끝나는 것, ~~로 시작되는 파일 등등 2~3 번쨰줄이 환경변수를 쓰는 방법이다. export 라는 명령어를 사용하여 key라는 환경변수에 /bin/cat flag를 저장한다.그리고 \${환경변수 이름} 이런식으로 환경변수를 실행? 시킬수있다.