Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- xcz
- Pwnable
- 네퓨즈
- webhacking.kr
- 정보보호
- kangsecu
- 워게임
- hacking
- webhacking
- 해킹
- 문제풀이
- 정보보안
- nefus
- DVP
- 버그헌팅
- wargame.kr
- 시스템
- 코드게이트
- 웹해킹
- C언어
- 포렌식
- CTF
- 보안
- 자료구조
- WarGame
- 선린인터넷고등학교
- 프로그래밍
- 버그바운티
- 포너블
- 블록체인
Archives
- Today
- Total
kangsecu's B1og
[HackCTF]Pwnable - first line 본문
1. Basic_BOF #1
binary :
main :
뭐 굳이 쉘코드를 넣을 필요도 없다. 그냥 v5변수 값이 -559038737이면 되는데 이게 0xDEADBEEF이다.
payload :
2. Basic_BOF #2
binary :
main :
이번에도 딱히 뭐 없다. 그냥 v5변수에 sup함수를 넣는다. 그럼 여기서 128바이트를 더미로 채우고 0804849b를 ret로 넘겨주면 된다.
payload :
dummy(128) + p32(0x0804849b)
$(python -c 'print "A"*128 + "\x9b\x84\x04\x08"'; cat) | nc ctf.j0n9hyun.xyz 3001
3. Basic_FSB
binary :
main :
vuln :
이 함수의 snprintf와 밑에 &format에서 fsb취약점이 터진다.
flag :
자 . fsb문제다. Partial RelRO니까 GOT overwrite가 가능할 것이다.
근데 아직 못풀음 ㅎㅎ
4. 내 버퍼가 흘러넘친다!!!
binary :
main :
매우 간단하다. read함수로 name값을 50을 받아오는데 여기서 취약점이 발생한다. 한가지 신경써야할 점은 name변수가 bss영역에 존재하기 때문에 이를 이용해서 해결하는 점이다.
payload :
dummy(13) + shellcode(24) + dummy(13)
해결 후 확인해보니 , 초기화 되지 않는 정적변수인 name에 쉘코드를 넣고 , input에서 dummy를 넘겨준 후 name의 주소를 전송하는 풀이도 많은 것 같다.
'System > wargame' 카테고리의 다른 글
[HackCTF]Pwnable - fourth line (0) | 2020.03.09 |
---|---|
[HackCTF]Pwnable - third line (0) | 2020.03.01 |
[HackCTF]Pwnable - second line (0) | 2020.02.23 |