목록Hack (231)
CIDY

흠.. 이런 게임 형식 문제는 둘중 하나다. 싸워 이기는건 둘째치고 취약점 찾아서 쉘따기 or 싸워 이기면 알아서 플래그 줌. 얘는 후자인듯. 일단 오픈소스라 맘은 편하다. clear()함수. 도대체 뭘 출력하고 싶은건지.. 저번에 NVODIA풀때도 이런 게 있었는데 오늘 그 의문을 해결했다. https://stackoverflow.com/questions/66927511/what-does-e-do-what-does-e11h-e2j-do What does "\e" do? What does "\e[1;1H\e[2J" do? I was looking for some alternative to system("cls") that works on MacOS and I found this: printf("\e[1;..

from balloon_tracking_lookup import get_status print "Welcome to your balloon order-tracking portal! Enter your tracking number here.\n" tracking_number = input(">>> ") try: print "Getting status for order #" + str(int(tracking_number)) + "..." except: print "Invalid tracking number!" print get_status(int(tracking_number)) 파이썬으로 짜여져 돌아간다. 파이썬으로 돌아가는 프로그램을 익스해본적은 없지만 요즘 ctf에 매번 등장하고 있어 더이상 회피할 수 ..

#include int main(void) { setbuf(stdout, NULL); //system("/bin/sh") puts("What would you like to post?"); char buf[512]; fgets(buf, 512, stdin); printf("Here's your latest post:\n"); printf(buf); printf("\nWhat would you like to post?\n"); fgets(buf, 512, stdin); printf(buf); printf("\nYour free trial has expired. Bye!\n"); //printf -> main return 0; } 코드가 매우 간단하다. 이것도 역시 fsb문제임. 근데 이전 문제보다 살짝 더..

#include int main_called = 0; int main(void) { if (main_called) { puts("nice try"); return 1; } main_called = 1; setbuf(stdout, NULL); printf("Lyrics: "); char buf[256]; fgets(buf, 256, stdin); printf("Never gonna give you up, never gonna let you down\nNever gonna run around and "); printf(buf); printf("Never gonna make you cry, never gonna say goodbye\nNever gonna tell a lie and hurt you\n"); r..

프젝하는데 머리아파서 문제풀러왔다,, 나름 안 푼것중에 pt적은거 가져왔는데 솔브수를 보면 그렇게 쉬운 것 같지도 않음ㅋㅋ 사실 이제 쉽다고 할 만 게 남아있지도 않다ㅠㅠㅠ 메인은 이렇게 생김. init부터 봐야할듯 착륙? 시드로 랜덤값 4바이트 읽어온다. 그리고 seed[0]을 진짜 시드값으로 씀,, 그리고 그 시드값을 me라는 전역변수에 저장하고 init_map이라는 함수를 수행하는데 함수 내부가 심상치 않으므로 다음에 읽어보자. 88, 8c, 90, 94... 한 칸씩 값들을 저장해준다. 그리고 환경변수 불러온다음 그거 길이 + 1만큼 malloc한다. 그 주소는 또 전역 cp에 저장함. 그리고 v1을 힙으로 strcpy해옴. name_list복사하고,, name_list는 data인데 별 이름들이..
보호되어 있는 글입니다.

CCE 일반부 예선 포넙문제인데 드디어 리뷰한다,, 당시에 거의 근접했었는데 함수 포인터를 뭘로 덮을지 몰라서 날려버린 문제였다. 코드 분량은 얼마 안된다. 근데 뭐 tw에 deaslr처럼 gets만 있는 한줄짜리 코드라도 그지같을 수 있는거고,, 일단 메뉴 들어가기 전 초기 설정. me에 들어가있는 문자열은 heukwoo임,, 0x400 memset때린다. 그럼 마지막 0x10은 초기화 안 된거고, 마지막 칸에는 카나리 들어간다. show는 bss영역에 있는 함수 포인터 같다. show_wallet함수의 주소를 담고 있다. 나머지 byte나 qword설정도 me에서 설정해준 것이다. show_wallet함수로 보아하니 me+32는 현재 내가 가진 돈인듯. 그럼 본격적으로 while문 ㄱㄱ umm,, 그..
보호되어 있는 글입니다.