일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시스템해킹
- 해킹 공부
- 시스템
- dreamhack
- WEB
- 리버싱
- Smashing The Stack For Fun And Profit
- 리눅스
- forensics
- #hacking
- grep
- writeup
- 번역
- picoCTF2018
- Aleph One
- write up
- 버퍼오버플로우
- picoCTF
- Hxd
- CTF
- #picoCTF2018
- 정답
- cryptography
- KOISTUDY
- general skills
- 카이사르
- 스택
- 해설
- Protostar
- reversing
- Today
- Total
목록분류 전체보기 (94)
Security || AI

문제 탐색 ghidra로 디컴파일을 해본 결과 stack3문제와 같이 win함수가 존재했다. 그러므로, 해당 문제에서는 return을 win함수로 덮어쓰면 문제가 풀릴 것이다. 문제 풀이 gdb로 main함수의 RET에 브레이크 포인트를 걸고, RET까지의 메모리 거리를 구할 것이다. 먼저, ghidra를 통해 RET까지의 거리가 76인 것을 구하였다. 또한, win함수의 시작 주소는 0x080483f4를 구하였다. 그러므로 A76개와 win함수를 합쳐 페이로드를 작성하였다. from pwn import * p = process('./stack4') win_addr = p32(0x080483f4) payload = 'A'*76+win_addr p.sendline(payload) print(p.recvre..

xss-game.appspot.com/level1 XSS game: Level 1 xss-game.appspot.com 문제는 alert()를 띄우면 성공하는 문제이다. 위와 같이 입력하여 풀 수 있다.

ghidra를 사용하여 디컴파일을 해본 결과 local_14에 함수의 포인터를 저장하고, 해당 함수를 호출하는 구조이다. gdb를 사용하여 info functions를 한 결과 win이라는 함수를 찾을 수 있었고, puts("code flow successfully changed");를 실행하는 것을 보아 해당 함수로 넘어가게 해야 할 것이다. 이때, local_54의 메모리가 총 64만큼 할당되어 있으므로 페이로드를 64개 + win함수의 주소를 해야한다. 위의 사진을 통해 win함수의 주소는 0x08048424인 것을 확인 가능하다. 위의 정보들을 바탕으로 pwntool로 익스플로잇 코드를 짜면 다음과 같다. from pwn import * p = process('./stack3') win_addr ..

먼저, stack2를 실행하면 아래와 같은 뜻이 나온다. stack2: please set the GREENIE environment variable 이를 통해 환경변수를 사용하여 익스플로잇을 해야한다는 힌트를 얻을 수 있다. 여기서 main+91에 하당하는 0x8048618의 문자열을 확인하면 답이 풀린다는 문자열을 확인할 수 있다. 그러므로, main+84의 cmp가 참일 경우에 문제를 풀 수 있어, main+84에 브레이크포인트를 걸어보았다. 다음으로 여기서 값이 입력되는 것은 GREENIE라는 환경변수에 적용되므로 환경 변수를 지정해주어야 한다. 이때, [esp+0x58]의 값을 0xd0a0d0a로 바꾸어야하므로 해당 주소 전까지의 거리를 재기 쉽게 pattern create를 사용하여 문자열을 ..

Angr는 파이썬을 활용한 바이너리 분석 도구이다. Symbolic Execution을 통해 알지 못하는 값을 심볼로 표현한 다음 실행할 수 있다. 리버싱, 시스템 해킹 등에서도 두루두루 사용하기 좋은 툴이다. 설치하기 python3가 설치되어 있다면 설치 가능하다. ※ Z3-solver, angr를 사용하면 서로 부딪히는 현상이 발생할 수 있으므로, 파이썬 가상환경으로 분리하는 것이 좋다. angr 설치 과정 pip3 install pyvex pip3 install unicorn pip3 install simuvex pip3 install angr 사용 예제 풀어볼 예시 문제 github.com/wizleysw/CTF/tree/master/defcamp_r100 wizleysw/CTF What I ha..

강화학습 공부 1일차 2020.01.27 강화학습의 기본 문제인 멀티암드 밴딧 문제는 n개의 손잡이가 달린 밴딧에서 어떤 손잡이를 잡았을 때 가장 높은 보상을 제공하는 손잡이를 찾아내고, 앞으로도 항상 이 손잡이를 선택하게 하는 문제이다. 2021/01/27 - [AI/강화학습] - [강화학습] 강화학습의 기본 개념들 멀티암드 밴딧 문제는 강화학습 3요소(위의 글 참조) 중 행동 의존성만 고려하면 되므로 기초로 풀기 좋다. 정책 멀티암드 밴딧 문제를 풀 때 정책이라는 개념을 알아야 한다. 정책은 주어진 환경의 어떤 상황에서 어떤 에이전트가 취하게 되는 일련의 행동을 말한다. 이때, 에이전트가 주어진 환경 내에서 최대의 보상을 얻을 때, 이를 최적의 정책이라고 한다. 정책 경사 정책 경사는 분류(Class..