CTF/DEFCON 2019 speedrun 4

[DEFCON 2019] speedrun-004 풀이

문제 풀이 환경 : ubuntu 16.04.7 001과 비슷한 느낌이다?,,,, 그리고 예전에 드림핵에서 풀었던 문제가 하나 떠오른다.. Analysis main 찾기 함수 이름들이 다 sub_* 이렇게 되어 있어서 우리는 수고스럽게(?) main을 찾아줘야 한다. start 함수의 첫 번째 인자가 main 함수이다. sub_400B40 : "i think i'm getting better at this coding thing." 출력 sub_400BD2 : 밑에서 확인할 것임 sub_400B60 : "see ya later slowpoke." 출력 sub_400BD2 여기서 뭔가 취약한게 터지는 것 같다. 사진에서는 rename이 안되어 있지만, sub_40DD00 함수는 입력받은 문자를 숫자로 바꿔주..

[DEFCON 2019] speedrun-003 풀이

문제 풀이 환경 : ubuntu 16.04.7 xor .. 의 의미..?..ㅎ 문제 푼 생각, 흐름 그대로 작성하려고 노력했다. Analysis 별거 없군.,.! 아이패드로 대충 색칠해왔다. read함수 반환값은 적은 바이트 수이다. 그래서 변수명을 size라고 임의로 내가 바꿨다. 결론은 입력할 때 30글자를 적어야 한다. 그리고 xor 함수가 보이는데 뭔가 xor 연산을 할 것 같다. 입력한 값 중 0xF만큼만 가져와서 xor 연산을 하는 것처럼 보인다. if문에서 그 뒤의 0xF만큼 xor 연산을 하고 윗줄에서 한 거랑 같은지 비교한다. 같으면 shellcode_it 함수를 호출하는데... 뭔가 수상쩍어 보여서 저 함수를 호출하려고 목표를 잡고 디버깅을 해보았다. 대충... if문 조건에 부합하려면..

[DEFCON 2019] speedrun-002 풀이

문제 풀이 환경 : ubuntu 16.04.7 slow slow slow run 마지막에 애먹은 문제다. Analysis 친절하게 이름이 main이라고 되어 있다. buf에 0x12C만큼 입력받고 아래 if문에서 buf를 확인하고 있다. "Everything intelligent is so boring." 문자열과 buf를 비교하고 있는데 0x24 길이만 비교한다. 같으면 if문 안으로 들어가서 v2를 인자로 sub_400705 함수로 이동하게 된다. 처음에 if문 들어가기 전 read에서 bof가 터져서 이걸로 어떻게 해볼까 했는데 이 문제를 풀려면 어쨌든 sub_400705 함수를 거쳐야 하기 때문에 if문 조건을 맞춰주어야 한다. 여기서도 bof가 터진다. 인자로 받은 a1에 0x7DA만큼 쓰는데 ..

[DEFCON 2019] speedrun-001 풀이

문제 풀이 환경 : ubuntu 16.04.7 빨리 풀 수 있어서 speedrun인데 난 slowrun이다.. 아무튼 문제를 풀어보자. Analysis static으로 컴파일해서 함수명이 다 이렇다. main을 찾아야 한다. start는 무조건 존재한다. 여기서 첫번 째 인자가 main의 주소이다... main의 주소는 0x400BC1 타고 들어가보자. 이 친구가 main이다. 그리고 아래 sub_400B60 함수 에서 bof가 일어난다. buf는 0x400이나... sub_440B60에서 0x750이나 읽어서 bof가 터진다. (read라고 추측 가능) 그리고 인자가 하나인 것으로 보아 sub_410390은 puts겠고.. 암튼 그런 느낌 음 보호기법은 NX가 걸려있고 Partial RELRO이다. g..