일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @Param
- 우아한테크코스5기
- 레벨인터뷰
- 우분투
- Mock
- 벌크연산
- 영속성컨텍스트
- 밤랩
- docker에 ubuntu
- unique result
- 자바 롬복
- @Query
- SpringDataJPA
- 회고
- 검색api
- 스프링 롬복
- clearAutomatically
- @Modifying
- jpa
- NonUniqueResultException
- 스프링부트배포
- 배포스크립트
- 우테코
- 우아한테크코스 블랙잭
- bomblab
- Argos
- ubuntu
- 우아한테크코스
- BDDMockito
- ubuntu이미지
- Today
- Total
Jeomxon's Tech Note
팀<PWN2FUN>_1회차 본문
팀 활동은 우선 notion이라는 프로그램을 이용하여 진행하기로 하였다.
( www.notion.so <-- 자세한 내용은 사이트 참고 )
먼저 내 노트북에 깔려있던 ubuntu 18.04 LTS를 통하여 HITCON_TRAINING을 설치하고 gdb peda를 통해 run을 시켜봤지만
이런 에러코드를 표출하며 실패하였다.
(설명이 부족하지만 윈도우 환경에서 실행하려고 하니 안 되는 것 같다. 컴파일을 m32옵션을 주지 않고 하니 run이 되긴 하였지만 리눅스 환경에서 하니깐 실행이 바로 가능했다.)
따라서 다시 노트북에 깔려있던 vmware의 ubuntu 14.04 LTS로 접속을 해서 어셈 분석을 시작했다.
이후 터미널에 들어가서 먼저 git을 설치하고,
git clone https://github.com/scwuaptx/HITCON-Training.git
이렇게 입력해주면 자동으로 설치가 완료된다.
터미널에서 HITCON-Training파일로 이동하고 LAB으로 이동하면 1~15까지의 lab이 나오게 되는데
이번에는 첫번째 lab1을 해결해보려고 한다.
lab1에 있는 sysmagic.c라는 코드를 보면 위와 같다. 뭔가 if의 조건문을 건드리면 될 것 같이 생긴 코드다.
그래서 gdb peda를 통해 어셈블리 언어로 보았다.
gdb를 통해 get_flag함수를 먼저 보았다.
사실 cmp문이 두 개가 있었는데 scanf 함수가 호출된 것을 보면서 코드랑 비교한 후 if문의 조건문이 +389에 있다는 걸 판단할 수 있었다.
일단 그래서 저기에 브레이크를 걸고 실행시켜보기로 했다.
브레이크 포인트가 정상적으로 걸렸음을 가운데 왼쪽의 초록색 화살표를 통해 알 수 있다.
그리고 edx와 eax를 비교해서 같아야 if문의 조건이 참이 되어 그 안의 내용이 실행이 되므로
edx의 값을 eax와 같게 해주면 되지 않을까 하는 생각에 set을 사용하여 edx의 값을 eax의 값과 같게 설정해보았다.
그리고 c를 통해 continue를 시켜보니 debugger_1s_so_p0werful_1n_dyn4m1c_4n4lySis!라는 문구와 함께 해결됨을 볼 수 있었다.