m0nd2y(321)
-
[보호]HACKCTF - LOL
보호되어 있는 글입니다.
2020.09.09 -
HACKCTF - Random Key
random 이라는 elf파일을 줍니다. 해당 파일을 실행해보면 인증을 받고 맞는지 아닌지 확인하는 것 같습니다. ida로 까보면 랜덤으로 시드를 돌려서 v5 에 넣고, 사용자 입력값과 v5가 같는지 비교해서 이걸 맞춰주면 되겠네요. 그럼 같은 시점에 시드를 생성해주고 그 시드를 넘기면 되겠군요. 1 2 3 4 5 6 7 8 9 #include #include #include int main() { srand(time(0)); printf("%d\n", rand()); } cs 이렇게 c언어 하나 컴파일해주고 그대로 넘기면 flag를 획득할 수 있습니다.
2020.09.08 -
HACKCTF - Poet
해당 문제를 실행해보면 이런식으로 무언가 1,000,000점수를 획득해야한다네요. ida로 코드를 확인해보면 rete_poem 함수를 보면 poem에 입력받았던 문자중에 해당 단어가 있을경우 100점을 주는 제도인데, 예를들어 CTF를 1000000번 입력하게되면 풀리겠지만, poem버퍼가 400이라 넘어 가서 해당 방식으로 풀면 안되겠다고 생각했습니다. 우리의 궁극적은 목표가 점수를 1,000,000으로 만드는것이기에 해당 버퍼를 1,000,000으로 덮는 방법으로 진행해보겠습니다. author의 이 변수가 이 위치에 있고. rate poem 의 점수 변수가 이 위치에 있으니 이 차를 구해서 dummy를 채워주고, 1,000,000을 넣어주면 됩니다. 이를 코드를 작성하면 다음과 같습니다. 1 2 3 ..
2020.09.07 -
HACKCTF - Let'S get it ! Boo*4
이 문제는 오래동안 잡다가 최근에 번뜩해서 풀이한 문제인데. 다운로드하면 해당 파일이 하나 보이는데 ihex로 내부를 보아도 의심이 될만한 사항들이 별로 안보이고, 그래서 스테가노 그래피일까 생각을 했다. 먼저 사진 자체의 GRB색깔을 바꿔서 flag가 사진 표면에 보이는 방법인거 같아서 계속 시도했지만 아니였다. 결론은 다음과 같다. zsteg를 활용해서 해당명령어를 치면 FLAG로 보이는 부분이 보이고, 이를 더 자세히 보면 HackCTF{0U].B10C0xCDA90xBD840xD7880d.8AC000H.8CE580xC7880xB2940xC8740xC7AC0v.8C57C}해당 부분을보면 내부가 뭔가 쓰여저있는거같은데 이상한 문자와 0xABCD가 같이 섞여있다. 4칸씩 끊어서보면 이러한 형식이 나오는데..
2020.09.07 -
HackCTF - Unexploitable #2
문제를 ida로 까보면 아래와 같습니다. 출력하나 해주고, 입력하나 받고 끝나는데 사용할 수 있는 함수가 이거밖에 없습니다. gift가 수상해서 봤더니 shell을 띄워주는게 아닌 system함수만 보내주는군요 마침 카나리도 안보이니 ret만 잘 oneshot으로 덮어주면 될 것 같은데 oneshot을 쓰려면 libcbase를 알아야하니 여기서 멘붕에 조금 빠졌습니다. rop체인을 구성해서 bss에 /bin/sh 박아서 system인자로 넣어줄까도 생각하다가 pr가젯사용해서 system인자에 넣어주면 주소 출력한다는 이야기를 들은기억이 있어서 구성해봤는데 실제도 되더라고요... payload는 아래와 같습니다. 이게 인텐드인지 bss에 넣어서 하는게 인텐드인지 출제자한테 물어봐야겠군요. 1 2 3 4 5..
2020.09.06 -
HACKCTF - Handray
리버싱 handray 문제이다. 리버싱이 평소 약점이라 더 많이 공부해야하는데 정말 어렵다.. 이번에도 시간이 좀 걸려서 풀었다. main 함수를 보면 다음과 같은데 역시 handray라서 코드를 보려고하면 다음과 같이 많은 코드가 사라진 것 처럼 보인다. main 화면을 보면 가장 왼쪽에 있는 "flag is %s"쪽으로 보내야 flag가 출력될 것 같지만 실제로 실행해보면 이렇게 flag를 뛰어넘었다고하면서 가운데 함수로 빠지게 된다. 디스어셈블 해서 어셈블리코드를 보면 +19번째코드에서 분기로 빠지게 된다. 이부분을 조건에 맞게 해주면 flag를 출력해 줄 수 있을 것이다. 따라서 +15번째에 bp를 걸어서 실행시킨다음 [rbp-0x4] 를 0으로 바꿔주면 조건을 만족 시킬 수 있을 것이다. bp설..
2020.09.03