일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- WarGame
- CTF
- 정보보호
- 시스템
- 정보보안
- 문제풀이
- 보안
- 해킹
- 자료구조
- nefus
- 블록체인
- 웹해킹
- 버그헌팅
- wargame.kr
- hacking
- 코드게이트
- 네퓨즈
- webhacking.kr
- 포너블
- webhacking
- Pwnable
- 포렌식
- DVP
- C언어
- 선린인터넷고등학교
- xcz
- 워게임
- 프로그래밍
- 버그바운티
- kangsecu
- Today
- Total
목록hacking (24)
kangsecu's B1og
이번에는 libc가 같이 제공이 안될경우 libc를 찾아서 문제를 해결하는 방법에 대하여 알아보자. libc-database 다운 : $git clone https://github.com/niklasb/libc-database.git libc data 다운 : library download / pwd : libc-database > $./get 사용법 : 1. 함수로 libc 파일 찾기 : ./libc-database/find/ [함수이름] [함수주소] 2. 함수 offset 찾기 : ./libc-databse/dump [id] [함수 이름] 3. ./libc-database/find/ [함수이름] [offset 3 bytes] function_addr = libc-base_addr + offset인데 ..
One_gadget이란 하나의 가젯만을 이용해서 쉘을 딸 수 있는 가젯이다.got overwrite를 할 경우 많이 사용되며 /bin/sh을 립시 파일 내에서 실행하는 가젯이다. one_gadget install : > apt install ruby > gem install one_gadget 사용법 : one_gadget "libc file" ex) one_gadget /lib/x86_64-linux-gnu/libc.so.6
드디어 rop를 정리한다. 공부해가면서 계속해서 내용을 추가할 예정이다. 이전 내용 복습 - 간단하게 RTL Chaining을 훑고 가보자. RTL Chaining은 RTL을 pop ret을 이용해서 여러 함수의 호출을 연계하는 것이다. 예를들어 read함수를 이용하여 bss영역에 /bin/sh을 입력하고 이를 system함수의 인자로 넘겨주기 위해서는 dummy + sfp + read@plt + pop pop pop ret Gadget + 0x0 + &bss + 0x8 + system@plt + pop ret Gadget + &bss 이렇게 페이로드를 구성하고 read는 0일때 표준입력이니까 이를 이용해서 bss에 /bin/sh을 넘겨주면 된다. - bss영역을 조회할때는 아이다로 보거나 readelf..
1. bof_pie binary : main은 볼게 없다. 들어가자마자 welcome이 실행됨 welcome : j0n9hyun : 대충 페이로드가 생각이났다. 근데 PIE가 걸려있어서 base주소로 할 수가없다. 그러므로 welcome_addr에서 welcome_offset을 빼서 base_addr을 구하고 거기에 j0n9hynun_offset을 더해서 j0n9hyun을 실행시킬 것이다. exploit : 2. yes or no binary : 3. RTL_world binary : NX가 있으니가,, RTL 을 하자 > 그냥 문제 이름도 RTL이다. main : 이 부분에서 bof가 발생하고 우린 여기서 rtl을 해주면 된다. exploit : 바이너리를 확인해서 dummy(144) + sys_add..
1. x64 Buffer Overflow binary : main.c : callmemaybe.c : exploit : 2. x64 Simple_size_BOF binary : main.c : exploit : 총 shell_code(31) + dummy(27929) + ret(buf_addr) 3. Simple_Overflow_ver_2 binary : main : 이번 문제는 매우 간단하다.(사실 지금까진 다 간단하다.) 그냥 scanf에서 취약점이 발생한다. 그리고 ret까지는 0x88 = 140이다. payload : shellcode(25) + dummy(115) + ret_addr 4. Offset binary : main : select_func : print_flag : main에서 get..
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와 밑에 ..
이번에도 마찬가지로 blog.h3x0r.kr에 업로드하였던 글 입니다. 오류 지적은 감사히 받겠습니다.
2018 H3X0R ctf write up 입니다. 저는 41등입니다. ㅎㅎ... MISC1. Mic Check(10p)H3X0R{lets get it} 2. 3D(420p)이 문제는 그냥 windows 3D print 프로젝트 파일이다. WorkPath에 문제를 덮은 후 열어주면 플래그가 있다. 3D view로 돌린 고 움직여주면 해결H3X0R{So_Useful_Paint_3D} 3.easy_png(210p)이 문제도 그냥 RGB청크의 위치를 알맞게 이동시키면 된다. H3X0R{Y0U_Ha7E} 4.RealrudaGaBabymisc(280p) 이 문제는 제가 출제한 문제입니다. 사실 문제 출제를 마감 전날까지 미루다가 낸 문제라서 퀄이.... (죄송합니다) 이 문제는 파일을 다운받으면 x,y 와 RGB..