일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- udc2024
- smart contract
- 티스토리챌린지
- 이세돌
- 웹해킹
- ctftime
- blockchain
- 프로그래머스
- 파이썬
- 디지털 포렌식
- misc
- Write up
- 알고리즘
- coin flip
- Python
- writeup
- CTF
- Lord of SQL injection
- YISF
- Los
- 디스코드 봇
- 워게임
- 이더넛
- 코딩테스트
- Crypto
- web3
- Ethernaut
- 오블완
- 정렬
- forensic
- Today
- Total
목록전체 글 (39)
수요없는공급
이번 11월 14일(목)에 열린 UDC 2024 컨퍼런스를 참여하였다. 전체 세션에는 소식이 늦어 참여하지 못하였지만 선착순으로 '웹3 보안 토크' 세션을 들을 수 있는 기회가 생겨 해당 프로그램을 간신히 들을 수 있었다. 이 특별 프로그램은 정재용 책임자님의 발표와 티오리 박세준 대표님의 발표, 그리고 업사이드 아카데미 1기 우승팀 분들의 발표로 이루어져 있었다. 첫 번째로 정재용 정보보호최고책임자님의 발표에서 들었던 내용 중 인상깊었던 내용들을 조금이나마 정리해보겠다.보안 keynoteWeb 3.0 Security Incidents웹3 보안 사고들에 대한 통계를 보여주시며 공격 기법들과 그로 인한 피해 자산들을 보여주셨다.공격 방법들은 다음과 같다.Contract Vulnerability (48.3%..
This is a coin flipping game where you need to build up your winning streak by guessing the outcome of a coin flip. To complete this level you'll need to use your psychic abilities to guess the correct outcome 10 times in a row. Things that might help- See the "?" page above in the top right corner menu, section "Beyond the console"section "Beyond the console" - https://ethernaut.openzeppelin.c..
Claim ownership of the contract below to complete this level. Things that might help- Solidity Remix IDEDifficulty: ★☆☆☆☆아래의 컨트랙트의 소유권을 가져오면 되는 문제이다.(Remix IDE라는 것이 도움을 줄 수 있을 것이라고 한다) // SPDX-License-Identifier: MITpragma solidity ^0.6.0;import "openzeppelin-contracts-06/math/SafeMath.sol";contract Fallout { using SafeMath for uint256; mapping(address => uint256) allocations; address ..
Look carefully at the contract's code below.You will beat this level if1. you claim ownership of the contract2. you reduce its balance to 0 Things that might help- How to send ether when interacting with an ABI- How to send ether outside of the ABI- Converting to and from wei/ether units (see help() command)- Fallback methodsDifficulty: ★☆☆☆☆해당 컨트랙트의 소유권을 획득하고 그것의 잔고를 0으로 만들어야 하는 문제이다. // SPDX-..
https://ethernaut.openzeppelin.com/ https://ethernaut.openzeppelin.com/ ethernaut.openzeppelin.com이더넛(Ethernaut)이란 Web3 워게임 사이트에서 공부를 시작하였고 문제 풀이를 꾸준히 포스팅해보도록 하겠다.This level walks you through the very basics of how to play the game.Difficulty: ☆☆☆☆☆ 우선 브라우저의 콘솔을 열어 컨트랙트와 통신해야 하는 것으로 보인다. player의 주소와 getBalance() 함수로 player의 잔고도 확인할 수 있다. 문제에서 제시해준 대로 contract.info()를 입력해보겠다.info() 함수를 호출하니 위와 같은..
Crypto ecb_mode from Crypto.Util.Padding import pad from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from base64 import b64decode, b64encode flag = open('/flag', 'rb').read() BLOCK_SIZE = 16 key = get_random_bytes(16) crypto = AES.new(key, AES.MODE_ECB) while True: try: data = b64decode(input('plain text (base64) >> ')) except: print('Retry') continue enc_data = crypto.en..
이번 10월 21일에 열린 '더 해킹 챔피언십 주니어 2023'에 참여하여 본선에 진출하였다. 우리 팀은 2 문제를 풀고 간신히 본선에 진출할 수 있었고, 풀었던 문제와 아쉽게 못 푼 문제를 정리하겠다. BBBBB (crypto) from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad import os BLOCK_SIZE = 16 KEY = os.urandom(BLOCK_SIZE) try: with open('flag.txt', 'rb') as f: FLAG = f.read() except: FLAG = b'flag{test_flagggggggggggggggggggggggggggggggggggggggggggggggggggggggg..
코드 분석 쿼리를 실행하였을 때 에러가 발생하면 exit(mysqli_error($db)); 를 통해 에러를 출력해준다. 또한 pw의 값을 정확히 알아내어야 문제를 풀 수 있게끔 되어있다. 공격 기법 mysql에서는 if문을 사용하여서 조건이 참이 되었을 때, 다음 쿼리를 실행하는 구문이 존재한다. 해당 특징을 통해 비밀번호의 길이에 대한 조건문이 참이 되었을 때, 에러가 발생하는 쿼리를 실행하도록 주입하여보자. ' or if(length(pw) '#') 조건이 참이되어 "Subquery returns more than 1 row"라는 에러가 발생하였다. 1부터 증가시키며 pw의 길이가 32라는 것을 알아내었고, 해당..
코드 분석 pw에 입력을 받지만 앞에 있는 # 주석처리로 인해 id가 guest인 결과만 조회될 것이다. 공격 기법 mysql의 # 주석은 '한 줄을 주석처리'하는 것이기 때문에 다음 줄에 조건문 쿼리를 작성한다면 주석을 빠져나갈 수 있을 것이다. ?pw=%0a and pw=1 or id='admin 이런 식으로 삽입하면 이런 쿼리가 완성되어 admin을 조회할 수 있다.
코드 분석 pw에 'regex', 'like' 라는 문자열이 있는지 검사한다. 공격 기법 ASCII() 함수를 사용해서 Blind SQL Injection을 시도하였지만 값이 제대로 나오지 않았다. 그래서 ASCII() 대신 HEX() 함수를 사용하여 pw의 Length를 측정해보았다. ' or length(hex(pw)) = 24 #' HEX() 함수를 통해 한 자리씩 알아내보면 0000c6b00000c6550000ad73 이러한 값이 나오고, 유니코드의 형식처럼 생겨서 한글 유니코드를 사이트에 검색해보면, Hangul Syllables — Unicode Character Table Hangul Syllables — Unicode Character Table Hangul Syllables 가ac00 각..