일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- .net core 7
- NAPT
- mvwin
- cbpf
- wnourefresh
- level trigger
- vtable
- 취약점
- epoll_wait
- Docker
- 어셈블리어
- packet flow
- rfc5508
- iptables
- DOCKER-USER
- ncurses
- REDIS
- .nret core 배포
- LOB
- 풀이
- C언어
- Compiler
- doupdate
- packet filter
- epoll
- ioctl
- edge trigger
- architecture
- BOF
- wrefresh
- Today
- Total
Tuuna Computer Science
우분투의 배경화면을 10초 단위로 바꿔주는 스크립트입니다. 해당 압축 파일을 해제하여 주시고 set_wallpaper_time.py를 백그라운드로 실행시켜주면 됩니다. ^^7 이미지 파일만 파싱 하여 바꿔줍니다. ^^7 급하게 짠거라 조금 비효율적으로 보일 수 있습니다 ㅎ 알아서 수정하시길 ^^7 커스터마이징 하면 좋을 듯한 거 : 10초마다 폴더에 이미지 파일이 추가되었는지 체킹 하는 함수 만들면 재실행할 필요 X GUI 프로그램으로 만들어서 gnome-tweaks에 시작 시 실행되는 프로그램에 올려둬서 하면 개조흠 백그라운드 실행법 nohup python3 set_wallpaper_time.py & 용량 문제로 코드로 대신 올림. 사용법 : 코드가 있는 파일안에 사진을 넣으면 10초마다 바뀜 타임도 ..

zombie_assassin으로 가기 위한 관문을 가기 위해서는 아래문제의 코드의 취약점을 바탕으로 해결해야 한다. 코드를 보자. 리턴주소에 라이브러리함수, 환경변수도 등등 사용할 수 없다. 그리고 HINT를 보면 Fake EBP를 사용하라고 나와있다. Fake EBP에 대해 알아보자. Fake EBP란 EBP의 값을 이동시켜 return주소를 조작하는 것이다. 근데 한번의 leave 명령으로는 조작된 EBP를 바탕으로 ESP를 조작할 순 없다. 그래서 우린 return주소에 leave명령을 한번 더 쓸 수 있게 leave-ret 명령의 주소를 가지고 와야한다. 그리고 문제의 소스의 마지막에 printf의 인자로 buffer의 주소를 스택에 넣고 있다. 이는 선언된 버퍼 바로 위에 만들어진 것으로 이것도..

추가 : 코드 짜면서 인라인 어셈블리에 새로운 것을 많이 알았음 예를 들어 output, input이라던가 등등 첨엔 변수의 값을 어떻게 이동시킬 지 몰랐는데 input쪽에 따로 설정하는 구간을 보고 개놀램. 학교 과제를 훔쳐보는 도중에 bof 취약점을 어떻게 방어할 것인가를 생각하는 거였는데 이때 bof를 못하게 Canary값을 넣어 방지한느 것은 이미 알고 있었지만 실제로 구현은 못해봤다. 그래서 오늘 한번 해보기로 함. 일단 아래는 문제의 소스이다. 32바이트 선언하고 뭐도 없고 BOF그냥 일어난다. 근데 저 코드에 몇 몇의 인라인 어셈블리 코드를 삽입하여(Canary) BOF를 방지해보려 한다. #include #include #include #include //check함수는 카나리값을 확인하여..