
http://crackus.jeju.kr/chall05.php http://crackus.jeju.kr/main.html 자매품 : KCR PKT HSH --> Enter to the CrackUs' game! crackus.jeju.kr 문자 "admin" 에 대한 필터링을 우회해야 함 1) http://crackus.jeju.kr/chall05.php?id=ad%27+%27min id='ad'+'min' 과 같은 형태로 필터링 우회 2) "문자열"을 우회하기 위한 방식으로 hex값 사용 0x61646d696e - mysql에서 해당 값을 문자열로 변환하여(id의 자료형은 문자열이기 때문에 이에 맞춰 자동 형변환을 수행함) (1) union select (2) or 키워드 우회하여 hex 값 대입
~~ing 1. and, or &&, || 2. substr, substring mid 또는 left, right 1) mid('string', 2, 1) ='t' 2) left, right left(right('string',5),1)='t' 3. ord 우회 1) ascii, hex 사용 가능 ord(substr(pwstring,1,1))=ascii(substr(pwstring,1,1)) 2) hex('a')=61 3) conv(N,from_base,to_base) 사용 4) bin('admin') = 0b110000101100100011011010110100101101110 -> 다 필터링되어 있을 때 : binary 함수 사용하여 대소문자 구분 가능 4. = like, between, in, in..

baby-sqlite | 워게임 | Dreamhack baby-sqlite 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요! > 해당 문제는 숙련된 웹해커를 위한 문제입니다. dreamhack.io 먼저 /login 페이지의 필터링을 확인하면 위와 같음을 확인할 수 있고, admin 계정으로 로그인하면 플래그를 얻을 수 있다. 위에서 따옴표에 대한 필터링이 설정되어 있기 때문에, uid, upw 에서의 인젝션은 어려워 보인다고 판단하고, level 입력 부분에서의 인젝션을 생각해 보았음 위의 계정 정보를 이용하여, where uid='dream' and upw='cometrue' and no=0 or uid='admin' 형태의 인젝션을 생각해 보았으나 기존에 사용하던 0..

https://dreamhack.io/wargame/challenges/73/ blind-command Read the flag file XD Reference Server-side Basic Server-side Advanced - Command Injection dreamhack.io 하하하하하ㅏ 드디어 풀엇다 먼저 실행 파일을 보면, 분명 / 경로에서 GET method로 지정되어 있는데, else 부분에서는 request.method가 GET이 아닐 때에만 os.system() 이 실행되는 것을 볼 수 있다. 여기서 알 수 있는 것은 1. GET 을 이용하여서는 os.system을 실행시킬 수 없음 2. 실행시키더라도 실행 결과가 나에게 보여지지 않음 이다. 2번 때문에 blind command ..
블록 암호 DES(Data Encryption standard) - 대칭키 - key : 56bit - 복호화 가능 - 평문 8byte 를 한 블록으로 하여 암호화 함. - 페이스텔 구조 - 치환 순열의 과정을 교차하여 반복 적용시켜 암호의 혼돈, 확산 성질을 모두 만족하게 함 AES - key : 128, 192, 256 중 택 1 - 복호화 가능 - 평문 16byte를 한 블록으로 하여 암호화 함 - 마찬가지로 치환, 순열 과정을 여러 라운드에 걸쳐 반복 해시 알고리즘 임의 크기의 데이터를 고정된 크기의 데이터로 변환함. md5 - 16byte 해시 값 생성 - 취약점이 여럿 발견되어 최근에는 사용이 줄어들었음. import hashlib str="abcd" enc=hashlib.md5() enc.u..
python (re) 치환 ( sub ) re.sub(pattern, repl, string, count, flags) => 치환된 문자열 return re.subn(pattern, repl, string, count, flags) => 치환된 문자열, 치환된 개수의 튜플을 return re.split (python 기본 method split과 유사) 메타 문자 [] 괄호 사이의 문자들과 매치(메타 문자를 있는 그대로 취급) . \n(줄바꿈 문자)를 제외한 모든 문자와의 매치 * 바로 앞의 문자가 0..* 반복될 때 매치 + 바로 앞의 문자가 최소 1번 이상 반복될 때 매치 {m,n} 바로 앞의 문자가 m..n 번 반복될 때 매치 ? {0,1} 과 같은 의미 a|b a또는 b와 매치 ex1 )) reg..

mongoboard | 워게임 | Dreamhack mongoboard Description node와 mongodb로 구성된 게시판입니다. 비밀 게시글을 읽어 FLAG를 획득하세요. MongoDB < 4.0.0 dreamhack.io ㅡMongoDB(NoSQL) 문제 자체는 뻔한문젠뎅.. mongoDB 정리 차원에서. 요런문제만 ctf에나오면얼마나 좋음 DB의 schema.. 즉 규칙을 생성하는 부분. MongoDB는 key-value 쌍의 json object 형태를 저장하는 데이터베이스 이므로 .. !! 여기에서 key 값들을 알 수 있음 갖가지 경로들과 .. CSP도 만들어 주고 있는 것 같음. 중요할까???? 생각이 들긴 하지만 처음 볼 때는 이딴 것도 당황스러울 테니깐 웅 (app.js) 딱 ..

off_by_one_000 | 워게임 | Dreamhack 바이너리 안에 존재하는 get_shell 함수를 실행시켜 system() 함수를 실행시키면 됨 main에서 read() 함수를 통하여 256 크기만큼 cp_name 전역 변수에 저장시킨 후 cpy() 내장 함수에서 strcpy()함수를 이용하여 real_name 지역 변수에 복사함 먼저 gdb에서 어셈블리어들을 보면 위와 같이 ebp-0x100 (real_name)에 저장되는 것을 볼 수 있음 따라서 dummy(0x100+4) + get_shell() 이런 식으로의 풀이는 불가능함 ( cp_name에 저장되는 값의 크기가 0x100=256이므로..) 아래 참조 링크에서 힌트를 얻어 풀었는데 strcpy를 통하여 **문자열**을 복사하는 과정에서,..

Flask-Dev | 워게임 | Dreamhack Flask-Dev 취약점을 찾아 플래그를 획득해보세요. 플래그는 /flag 를 실행하면 얻을 수 있습니다. 해당 문제는 숙련된 웹해커를 위한 문제입니다. dreamhack.io 개열받았던문제. 먼저 소스를 보면, url에 입력된 파일 path를 통하여 파일을 읽어오는 것을 알 수 있음 문제에서는 /flag파일을 실행시키는 것이 목적이라 했으므로 일단 /flag에 접속해 보면 위와 같이 에러 로그가 출력된다.. (디버그 모드로 설정되어 있기 때문) 일단 app.py로 접속해 보면 위와 같이 이미 알고 있는 ㄱ- app.py 의 소스를 읽어와 준다 app.py 소스와 더불어 같이 주어진 Dockerfile을 보면(사실 별로 안 중요함) flag 실행 파일을 ..
- Total
- Today
- Yesterday
- 분할정복
- LowerBound
- MinHeap
- Segment Tree
- 동적계획법
- 백트래킹
- 희소 배열
- HashSet
- Sort
- 위상 정렬
- 완전탐색
- 최단 거리
- RequiredArgsConstructor
- Knapsack
- dp
- 분할 정복
- dfs
- 이분탐색
- 배낭 문제
- 참조 지역성
- 완전 탐색
- prirotyqueue
- 부분 합
- MaxHeap
- 누적 합
- Priority Queue
- 페르마의 정리
- 구간 합
- Greedy
- 비트마스킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |