- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 블록체인
- 해킹
- security
- overthewire
- Crypto
- web3
- Linux
- DreamHack
- 리눅스
- lending
- 비트코인
- 이더리움
- blockchain
- pow
- hacking
- 코인
- 해시
- pwnable
- bitcoin
- Leak
- Ethereum
- solidity
- shellcode
- compound
- PWN
- V2
- defi
- 반딧
- BANDiT
- wargame
목록hacking (16)
Nullorm
지금까지 몇개월정도 Web3 offensive 보안 공부를 하면서 취약한 컨트랙트를 보면 일단 call()함수가 사용되었나를 보고, 사용되었으면 reentrancy attack이 가능하겠다~ 정도를 생각해왔다.그리고, call{value: }() 함수 사용으로 인한 reentrancy attack의 countermeasure로 사용되는 함수가 send(), transfer() 인 것으로 생각하고 있었다.그런데 몇몇 자료들을 찾아다니다보니, 꼭 그런것도 아니겠구나 싶었다. 오히려 send(), trnasfer() 함수가 reentrancy attack을 유발할 수 있겠구나 싶었다.이 내용을 한번 자세히 정리해보고자 한다. 지난번 포스팅에서 송금 관련 함수들 (send, transfer, call)에 대해 ..
해외 유명 워게임 사이트인 Hack The Box의 Blockchain 보안 워게임을 풀어보았다.링크: https://app.hackthebox.com/challenges/Distract%2520and%2520Destroy Hack The Box app.hackthebox.com1. 문제 설명이다. 그렇다고 한다. After defeating her first monster, Alex stood frozen, staring up at another massive, hulking creature that loomed over her. She knew that this was a fight she couldn't win on her own. She turned to her guildmates, trying ..
포린이의 첫 RTL문제 시도... 정답을 보면서 하면 당연히 실력이 늘지 않으니 몇시간동안 끙끙대면서 푸는게 참 힘든 것 같다. ㅜㅜ (문제 출처 : https://dreamhack.io/wargame/challenges/353/ ) Return to Library Description Exploit Tech: Return to Library에서 실습하는 문제입니다. dreamhack.io 일단 국룰 체크 먼저. 카나리, NX 보호기법이 사용되었다. 기본적으로 지금 풀고 있는 문제는 전부 bof 관련된 문제이므로, canary leak을 해주어야 할 것이고, NX로 인해 스택 영역에 실행권한이 없을 것이므로 쉘코드를 실행할 수 없을 것. 따라서 system("/bin/sh") 을 실행할 수 있도록 함수의..
첫 번째 문제가 재밌어서 바로 두 번째 문제를 풀러 왔다. 첫 문제보다 쉬운 것 같다. 그냥 read_flag() 함수를 호출할 수 있으면 될 것이다. (문제 출처 : https://dreamhack.io/wargame/challenges/3 ) 예전에 어딘가에서 듣기로 ASLR? 이라는 기법이 사용되면 프로그램을 실행할 때 마다 주소가 바뀌어 포너블하기 힘들어진다고 했는데, 그냥 여기서는 그런 기능 안되어있길 기도하면서 read_flag 함수 주소를 찾았던 것 같다. 일단 국룰 절차 먼저 밟아보자. 사실 보호기법은 봐도 잘 모른다. 그래도 일단 습관화 하면 좋을 것 같아서 밟는 절차... 하하 다음은 코드를 살펴보도록 하자. #include #include #include #include void al..
2학기 들어서 처음 풀어보는 Pwnable 문제!! 신나는 마음으로 접근해보았다. (문제 링크 : https://dreamhack.io/wargame/challenges/2)
이번에는 base64로 인코딩된 password가 data.txt 안에 들어있다고 한다. base64 -d 옵션을 통해 decode 했다. 그런데, base64암호를 사용해본적은 있는데 이게 어떤 암호(인코딩 방식)인지 궁금해져서 좀 알아보기로 해보았다. https://nullorm.tistory.com/23 인코딩 & 디코딩 | Base64에 대하여... 인코딩(encoding)과 디코딩(decoding) 파일에 저장된 정보의 형태나 형식을 변환하는 처리 / 처리방식을 말함. 이메일, 문자메시지 등의 전송, 동영상이나 이미지 영역에서 많이 사용됨. 인코딩의 반 nullorm.tistory.com 끗!
이번에는 data.txt 파일에 있는 몇몇 human-readable 문자열 중 하나이며, 몇개의 '='문자와 같이 등장한다고 한다. $ strings 명령어 : 파일 내의 ASCII text로 이루어진 문자열을 추출(?) 이렇게 해보았다. 비밀번호 찾았당 ^^ ㅎ
이번에는 data.txt 안에 존재하는 문자열 중 오직 한 번만 등장하는 문자열이 정답이라고 하는 것 같다. sort 명령어와 uniq 명령어를 사용해보았다. sort 명령어는 문자열을 오름차순으로 정렬해주는 명령어 sort [파일명] uniq 명령어는 정렬된 문자열에서 중복되는 문자열들을 없애주는 역할을 한다.) uniq -u 옵션 : 중복되지 않은 녀석들 제거 정답 !! ^^
이번에는 data.txt 라는 파일 속에 millionth옆에 비밀번호가 있다고 한다. 이럴 때 당장 생각나는건 우선 grep 명령어를 통해서 millionth 가 포함된 문장을 찾는 것을 생각해보았다. 어라... 간단하게 해결되었다. % grep 사용법 추출된 문자열에서 특수한 문자 또는 문자열이 포함된 행을 찾는 명령어이다. grep "문자열"을 통해 찾아낼 수 있다. 끗
이번에는 무슨 서버 어딘가에 있다고 하고 bandit7이라는 유저의 소유, bandit6 그룹에 속해있고, 33 byte라고 한다. 이번에도 find 명령어를 사용해볼 수 있을 것 같다. 그런데... 애초에 홈디렉토리에 아무것도 존재하지 않는다.. 그런데 문제의 발문을 다시한번 살펴보면 홈디렉토리가 아닌 "서버 어딘가" 에 있다고 했으니깐 루트 디렉토리에서 살펴보면 되지 않을까 싶다. find 명령어를 이용해서 user, group, size 옵션을 이용해서 찾아봤는데도 뭐가 엄청 많이 나온다. 이렇게 해서는 뭘 찾기가 힘들어보인다. 우선 해결방법이다. 이렇게 하면 permission denied가 뜬 행들을 다 지워버리고 우리가 찾는 결과만 남길 수 있는데, 설명 2>/dev/null 1. 파일 디스크..