전체 글

성밍쟁 공붕방
프롤로그하루 한 문제씩 드림핵을 풀기에는 지금, 한 문제 푸는 데에 너무 오래걸린다.할 일은 많은데, 그래서 다른 워게임들도 풀어보려고 찾았고, webhacking.kr를 찾아서 풀어보려고 한다.1번 문제는 풀었으나, 너무 쉬웠어서 2번문제 부터 풀려고 한다.  문제 및 소스코드처음 들어갔을 때는 그냥 검정화면에, view-source 가 보인다view-source를 누르면view-source  풀이전략사이 부분을 보면파라미터로 admin을 입력이 되면 문제가 풀릴 것이다. 다만 그 위에, 파라미터로 admin이 입력되면 no!가 입력이 될 터이니 그것을 우회해야한다. 풀이과정https://webhacking.kr/challenge/web-11/?id=admin를 맨 처음에 입력해보자.no!가 출력이 되..
프롤로그시간이 부족해  문제https://dreamhack.io/wargame/challenges/343 [wargame.kr] tmitterDescription you need login with "admin"s id! create table tmitter_user( idx int auto_increment primary key, id char(32), ps char(32) );dreamhack.io 코드는 따로 주어지지 않았다  코드처음 입장했을 때 이렇게 존재하고, 소스코드는 TMITTER is not fake twitter! :p have an account? New to Tmitter? ID PS 여기서 확인할 수 있다. 그리고 문제조건에서 나온..
프롤로그학회 때문에 바빠죽겠는데 할 건 해야지..  문제https://dreamhack.io/wargame/challenges/931 random-testDescription 새 학기를 맞아 드림이에게 사물함이 배정되었습니다. 하지만 기억력이 안 좋은 드림이는 사물함 번호와 자물쇠 비밀번호를 모두 잊어버리고 말았어요... 드림이를 위해 사물함 번호와dreamhack.io드림이는 바보야..  코드#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport randomapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read() # flag is ..
프롤로그워게임 Error based SQL Injection 을 풀면서, SQL Injection에는1. Error Based SQL Injection: GET/POST/HTTP헤더/쿠키 등에 ' or ; 삽입시 SQL 관련 에러를 통해 DB의 정보를 예상(1) '을 넣어서 Error based SQL Injection이 뜨는지 확인(2) ' and db_name() > 1 -- 로, 등으로 DB명 확인(3) 칼럼명 확인 2.  Union Based SQL Injection: 공격자가 Union을 이용하여 원래의 요청에 추가 쿼리를 삽입하여 정보를 얻어내는 방식-> Union쿼리는 앞에거랑 필드개수가 같아야함' union select 1, 2, 3, 4, 5, 6# 이런식으로 사용 3. Blind bas..
문제https://dreamhack.io/wargame/challenges/1186 what-is-my-ipDescription How are they aware of us even behind the wall? FYI Flag Location: /flag Flag Format: DH{...}dreamhack.io  소스코드#!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag(): user_ip = reques..
프롤로그하루 1 워게임 도전중  문제소스코드를 다운받아도, 아무것도 없길래 일단 넘어가겠다. 그래서 사이트를 접속하게 되면get source 부분이 있는데 저것을 클릭하면 소스코드"; echo "FLAG : ".$FLAG; } }else{ echo "wrong.."; } }?>IDPW get source  코드 분석맨 밑에 주석처리되어 있는 you have blocked accounts.guest / guestblueh4g / blueh4g1234ps이게 아마 아이디, 비밀번호일것이다. isset($_POST['id']) && isset($_POST['ps'])여긴 POST 요청으로 아이디, 비밀번호가 요청된 게 있는 확인하는 곳mysqli_connect("localhost", $DB_u..
프롤로그CSRF 관련된 풀이는 오랜만이라서 개념부터 다시 정리하고, 이전 CSRF-1번 문제 되돌아보면서 이 CSRF Advanced 문제를 풀어보자  CSRF교차 사이트 요청 위조(Cross Site Request Forgery)쿠키 또는 세션을 사용해 이용자를 식별하는데, 임의 이용자의 쿠키를 사용할 수 있다? 그러면 임의 이용자의 웹 서비스 기능을 사용할 수 있다.CSRF는 임의 사용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점이다.  CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행하여야함.-> 메일/게시판에 글을 작성해 이용자가 이를 조회하도록 유도 IMG 태그나 FORM 태그로 요청보내면 세션아이디값이 같이 간다중요한건CSRF는 이용자가 임의 페..
프롤로그화이트햇 하면서 공책받고나서 거기다가 열심히 적으면서 하다가 블로그 정리 안 하긴 했는데블로그 정리가 훨씬 더 좋은 거 같다.  문제  문제코드#app.pyimport osfrom flask import Flask, requestfrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost')app.config['MYSQL_USER'] = os.environ.get('MYSQL_USER', 'user')app.config['MYSQL_PASSWORD'] = os.environ.get('MYSQL_PASSWORD', 'pass')app.config['..
0. 프롤로그https://dreamhack.io/wargame/challenges/353 Return to LibraryDescription Exploit Tech: Return to Library에서 실습하는 문제입니다.dreamhack.io  1. 사전 공부 및 작업2. 문제   3. 코드 분석  4. 스택 구조   5. 예상 공격 방법   6. 카나리 값 획득   7. system.의 plt 주소 확인8. 리턴 가젯   9. /bin/sh의 주소 찾기10. 실행 11. 에필로그시간 투자를 굉장히 많이함.
프롤로그 지금까지 내용들 정리해보면Return Address Overwrite : 반환 주소를 악성 함수의 주소로 덮어서 셸 획득Stack Canary : 스택 프레임의 반환 주소 전에 랜덤한 카나리를 주입하여 반환 주소를 덮기 어렵게 함Return to Shellcode : 카나리를 우회하고, 셸 코드를 주입한 버퍼의 주소로 반환 주소를 덮어서 셸 획득ASLR : 임의 버퍼의 주소를 알기 어렵게 함NX : 각 세그먼트의 불필요한 실행권한을 제거함으로써 공격자가 임의 버퍼에 주입한 코드를 실행하기 어렵게함 NX를 우회하기 위해 RTL(Return To Libaray)가 나옴  Return to LibraryNX로 인해 공격자가 버퍼에 주입된 셸 코드를 실행하기는 어려워졌으나, 반환 주소 덮는 것은 여전히..
라이브러리컴퓨터 시스템에서 , 프로그램들이 함수나 , 변수를 공유해서 사용할 수 있게 함.printf, scanf, strlen 등 C프로그래머들이 코드를 작성하면서 자주 사용하는 함수들의 정의를 묶어서 하나의 라이브러리 파일로 만들고, 이를 여러 프로그램들이 공유해서 사용할 수 있도록 지원함.-> 같은 함수를 반복적으로 정의해야하는 수고를 덜 수 있어서 코드 개발의 효율이 높아짐 각 언어에서는 범용적으로 많이 사용하는 함수들(printf...)은 표준 라이브러리로 제작되어있음.C의 표준 라이브러리인 libc는 우분투에 기본적으로 탑재됨./lib/x86-64-linux-gnu/libc.so.6에 위치.   링크컴파일 되는 과정전처리(.i) -> 컴파일(.s) -> 어셈블(.o) -> 링킹 즉 어셈블 까지..
프롤로그 화이트햇 하면서, 스택오버플로우랑 카나리 기법 공부하고, 따로 정리는 안 하였다. NX No-eXecute(NX) : 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법. 메모리 영역에 대해 쓰기 권한과 실행 권한이 함께 있으면 시스템이 취약해 지기 쉽다. 그래서 CPU가 NX를 지원하면, 컴퍼알러 옵션을 통해 바이너리에 NX를 적용할 수 있고, NX가 적용된 바이너리는 실행될 때 각 메모리 영역에 필요한 권한만을 부여받는다. 어떤 보호 기법이 적용되었는지 확인하려면 checksec 파일 를 쓰면 보호 기법이 나온다 $ checksec ./nx [*] '/home/dreamhack/nx' Arch: amd64-64-little RELRO: Partial RELRO S..
성밍쟁
너드인의 밤