목록pwn (47)

https://dreamhack.io/wargame/challenges/3/ basic_exploitation_001 Description 이 문제는 서버에서 작동하고 있는 서비스(basicexploitation001)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 "flag" 파일을 읽으세요. "flag" 파일의 내용을 dreamhack.io 풀어보겠다. 환경은 이렇다. 바로 코드를 확인해보자 gets함수를 사용하여 bof를 일으키고 ret주소에 read_flag 주소로 덮어버리도록 하겠다. 먼저 read_flag함수의 주소를 얻어보자 주소를 겟 해버렸다. 페이로드는 dummy*0x80 + sfp(4) + read_flag(4)로 날리도록 하겠다. from pwn impor..

https://dreamhack.io/wargame/challenges/2/

flag가 이미 열려있다는 힌트를 주었다. main 코드이다. filtering을 통해 명령어들을 한번 걸러낸다. 일반적인 명령어로는 flag를 읽을 방법이 안보인다. 일단 힌트에 나와있는 /dev 파일에 들어가 보았다. 여기에 fd라는 디렉터리가 보인다. 파일디스크립터이다. flag파일이 open중이라니깐 fd를 이용해 파일을 열 수있을것이다. fd디렉터리에 들어가 파일들을 확인해보았다. 이제 remote로 연결해서 fd를 3번을 실행시켜보도록 하겠다. 왜냐하면 보통 파일을 열면 보통 fd를 3번부터 부여하기 때문이다. flag가 나왔다.!
보호되어 있는 글입니다.
보호되어 있는 글입니다.

void vuln(){ char buf[128]; puts("EXPLOIT:\n"); puts("Here we go, I'll be nice and read three inputs, and all three will be outputted with printf as its first paramter.\n"); puts("However, no overflows, I won't take more than 128 characters at a time. :pensive:\n"); puts("Give me your first input:"); fgets(buf, sizeof(buf), stdin); printf(buf); puts(""); puts("Nice, now give me your second input..

사진으로 남겨둔게 없어서 일단 코드부터 보겠음 그냥 연습문제라는데 ROP, FSB 둘다 해야함 void rop(){ char buf[0x40]; gets(buf); //here is the overflow vuln, rest is info puts(""); stkstrt(); stk(buf, 0x0, "(buf strt)"); for(int i = 0x1; i < 0x7; i++) stk(buf, i, ""); stk(buf, 0x7, "(buf end)"); stk(buf, 0x8, ""); stk(buf, 0x9, "(canary)"); stk(buf, 0xa, "(rop func base ptr)"); stk(buf, 0xb, "(rop func return ptr)"); stk(buf, 0xc, ..
보호되어 있는 글입니다.