본문 바로가기

분류 전체보기

(153)
[Pwn] SimpleBOF ELF linux 어쩌고 하길래 Kali Linux에서 열어도 안된다... C++ 수업에서 복사생성자가 필요할 때 생기는 오류라고 했는데 C로 된 코드이지만 뭐... 넣어줘야 하는건가 싶어 코드를 이리저리 바꾸어 보았으나 오류를 고칠 수 없었다. 처음에 0이라고 초기화되었지만 gets로 입력받은 buf.check가 true면 cat ./flag 즉 flag를 보여준다. gets(char *buf) 함수는 표준 입력으로부터 문자열을 입력받아 buf에 저장하는 함수로 입력 길이를 검사하지 않기 때문에 버퍼 오버플로우가 발생한다는 취약점이 있다. 저기 위에 있는 링크로 접속해 256바이트 이상을 집어넣으면 flag를 얻을 수 있다. IDA 를 사용하거나, 디컴파일하거나 디스어셈블해서 어셈블리어를 보고 풀면 된..
[Web] Bottle Poem 링크를 클릭하자. 나의 병 속의 시들을 읽어라...? 일단 순서대로 링크를 타고 들어가보자. Spring. Auguries of Innocence. The tiger. 음. 그냥 아름다운 시... 같은데. 앞글자들만 다 따서 모으면 Flag 가 되는걸까... 어. tiger 시 행 뒤쪽에 숫자가 있는데 뭘까. 여기까지가 CTF를 풀며 내가 작성했던 것인데 당시의 당혹감이 아주 잘 드러나있다. 정말 손도 못 댔어서 다시 보니 굉장히 부끄럽다. Write Up에 따르면, /show?id=spring.txt 처럼 파일을 읽고 있는 느낌이 있으므로, /show?id=/etc/passwd 를 해 보면 빠져나올 수 있다. LFI 취약점을 찾아야 한다. 응답의 server: WSGIServer/0.2 CPython/..
[Programmig(PPC)] Let's Play Osu!Mania 1.in 파일을 열어보니... 당최 이게 뭔지를 모르겠다. 이건 같이 첨부되어있던 PDF 이다. sample에 있는 내용이 1.in 파일의 것과 같은 듯하다. 리듬게임인가? tap 노트가 내려오면 해당하는 올바른 키를 눌러 플레이한다. hold 노트가 라인에 도달하면 시작 노트를 때맞춰 두드리고 종료 노트에서 해제한다. 4K 비트맵이 주어졌을 때 개체(노트?)가 몇 개 있는지 계산해야 한다. 첫줄에 나오는 비트맵의 길이에 해당하는 정수 N은 10보다 크고 10000보다 작고, 다음 N줄에서는 비트맵을 설명하는데, 각 줄은 길이가 6인 문자열이고, 첫번째와 마지막 문자는 기호 | 이다. 나머지 4개의 문자는 스페이스, 하이픈(-), 샵(#) 셋 중 하나일 수 있다. 중복되거나 깨진 hold 노트는 없고, ..
[Rev] EasyXOR 파이썬 코드를 해석해보자. 0부터 flag의 길이, 즉 24까지 반복한다. 무엇을? append 즉 리스트의 끝에 추가하는 것을. ord는 문자를 넣으면 유니코드 정수를 반환한다. flag의 i번째 배열에 i승을 한 값을 집어넣었을 때...? 게다가 문제에는 XOR 연산에 대해 알아보자고 적혀있다. XOR 연산은 같으면 0을 다르면 1을 출력하는 연산 아닌가? 저 ^ 모양이 i 제곱이 아니라 XOR 연산을 나타내는 것이었을까? 유니코드로 저 주석에 달려있는 값이 나오게 하려고 chr로 다 문자로 바꿔서 넣어봤는데도 안된다. SWING{svkmc~~7zvr;~rw?enu `jb+f|w(p?>]} 라고 넣었었는데. 저 아래 출력된 값을 변환해서 넣어도 안된다. SWING{svkmc~9876543210/.-..
[Dreamhack] sql injection bypass WAF sql injection bypass WAF | 워게임 | Dreamhack sql injection bypass WAF Description Exercise: SQL Injection Bypass WAF에서 실습하는 문제입니다. dreamhack.io 다운받은 파일의 압축을 풀고 하나씩 열어보도록 하자. users 데이터베이스에는 user라는 테이블이 있으며, 테이블 내부에는 idx, uid, upw 컬럼이 존재한다. 또한, “guest”, “admin” 등의 계정이 추가된 것을 확인할 수 있다. 코드를 보자. import os from flask import Flask, request from flask_mysqldb import MySQL app = Flask(__name__) app.config[..
[Dreamhack] blind sql injection advanced blind sql injection advanced | 워게임 | Dreamhack blind sql injection advanced Description Exercise: Blind SQL Injection Advanced에서 실습하는 문제입니다. 관리자의 비밀번호는 "아스키코드"와 "한글"로 구성되어 있습니다. dreamhack.io 비밀번호는 아스키코드와 한글로 구성되었다. 접속 정보에 나오는 링크를 타고 들어가보자. uid를 submit 하면, 그러니까 단어를 입력하면, 저게 쿼리의 조건절로 들어간다는 것 같다. 어라. 오버로드나 ap 오류라고 한다. 틀린 값을 입력하면 저렇게 되는건가. 쿠키는 필요없는가보다. 없다고 뜬다. 다운받은 파일의 압축을 푸니 파일이 세 개 있는데 우선 하나씩 열어보도..
Lord of SQL injection 07 https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php los.rubiya.kr 아직 05, 06을 깨지 못했기 때문에 위 링크를 통해 접속하면 된다. 저기 preg_match가 들어있는 두 줄을 보자. preg_match($pattern, $subject, [, $matches])는 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수이다. $pattern : 문자열로 검색할 패턴 $subject : 입력 문자열 [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둔다. 따라서 pw..
abex' crackme #4 보호되어 있는 글입니다.