분류 전체보기

md5 password 문제를 누르면 다음과 같이 나온다. md5('value', true)이게 힌트가 될수 있다. 일단 md5 해시 원리에 대해 알아야한다. md5같은 경우 인자로 들어온 문자열을 md5 해시하여 32bytes의 길이로 반환을 해준다. 여기서 두번째 인자를 옵션으로 줄 수 있는데 이 값은 'true' or 'false'로 줄 수 있다. 기본적으로 default 값은 'false'인데 'false'일 경우 32bytes의 값 'true'일때는 Hex값을 16bytes의 바이너리값으로 반환해준다. 이제 start 버튼을 눌러보면 다음과 같이 나오는데 여기서 get source 버튼을 누르면 다음과 같은 코드가 나온다. 이제 이 코드에서 우리는 이 부분을 봐야하는데 이코드를 간략하게 해석하면..
XML : 인터넷 웹 페이지를 만드는 HTML을 획기적으로 개선하여 만든 언어, 홈페이지 구축기능, 검색기능 등이 향상되었고, 웹 페이지의 추가와 작성이 편리해짐 XML은 데이터를 트리구조의 노드로 표현하며 사용자 정의로 데이터를 분류한다. ex) 1 matrix 다음 코드에서 최상위 노드는 'movies'이고 하위노드는 'action'이다. 'action'의 하위노드에는 'id', 'name'이 있다. 이처럼 XML 사용자는 다양한 데이터를 편의에 맞게 분류할 수 있다. Xpath : 확장 생성 언어 문서의 구조르르 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어 Xpath는 일종의 쿼리로, XML DB 내용을 선택하고 조작하기 위하여 사용한다. XML은 트리구조로..
fly me to the moon이라는 문제를 클릭하면 다음과 같이 나온다. 게임인데 치팅 시스템 방지 프로그램을 우회해서 게임을 깰 수 있냐고 물어본다. 일단 들어가보자 이런 게임이 나오는데 게임을 하다 죽게 되면 다음과 같은 문구가 뜬다. 31337점 이상을 얻어야 flag가 나오는 것 같다. 이제 burpsuite를 사용해서 조작을 해야할 것 같다. 먼저 proxy 설정 해주고 게임에서 게임오버가 되어 이런 문구가 떠야한다. 이 부분에서 패킷을 캡쳐하면 score부분을 31337보다 크게 잡아주고 intercept is off 누르면 눌러준다 누르면 다음과 같이 flag가 나오는데 이 flag를 문제에 넣고 AUTH를 누르면 색깔이 바뀌어 있다.
login filtering 문제를 눌러보면 다음과 같이 나온다. 해석해보면 나는 계정이 있지만 잠겨있다. 필터링을 우회할 수 있냐고 물어본다. start 버튼을 누르면 다음과 같이 로그인 창이 나온다. 그리고 밑에 get source라는게 보인다. 이 get source를 누르면 복잡한 php 코드가 나온다. 그 중에서 if문을 보게 되면 id가 'guest'이거나 'blueh4g'일 경우 your account is blocked라는 메시지를 출력하도록 되어 있다. 그리고 나머지는 "login ok"라는 문구를 띄어주도록 되어있다. 이 때 비교 대상은 쿼리 결과로 나온 $row['id']가 아니라 $id이다. 또한 MYSQL은 대소문자를 구분하지 않기 때문에 id에 'guest'대신에 'Guest'를..
QR CODE PUZZLE을 들어가게 되면 다음과 같이 퍼즐이 나온다. 이제 이 퍼즐을 맞춰 QR코드가 나오면 그 QR 코드를 찍으면 flag가 나오는것 같다. 하지만 QR코드에 문외한이라 직접 맞추기는 힘들 것 같았다. 그래서 F12를 눌러 보았다. 들어가서 source를 들어가보면 다음과 같이 나오는데 여기에 img라는 폴더가 보인다. 의심스러워서 들어가보니 qr.png라는 파일이 있다. qr.png 파일을 눌러보면 다음과 같은 QR코드가 보인다. 이제 이 QR 코드를 QR코드 스캐너로 오픈해보면 다음과 같이 나온다. 이제 이 사이트를 들어가게 되면 다음과 같이 플래그가 나온다 이제 이 플래그를 복사해서 붙여 넣어보자 flag를 입력하고 Auth를 누르면 색깔이 변해 있다.
다음으로 flee button 문제를 풀어보았다. flee button을 누르면 다음과 같이 뜬다. 버튼을 눌러라, 나는 못 누르겠다. 이소리인것 같다. 근데 자기는 못 누른다고 하는거보니 버튼 누르는게 어려운 문제인 것 같았다. start 버튼을 누르면 클릭 버튼을 누르면 이 문제의 플래그를 알 수 있다고 했다. 정말 쉬운문제 같지만 빡치는게 마우스가 절대 클릭할 수 없도록 만들어 놓았다. 그래서 F12를 눌러 Elements에가서 이것저것 눌러보다 보면 id=esc 부분이 click me와 관련된 코드인 것을 알 수 있다. 이제 이 부분에서 position: absolute; 부분을 지워버리자 그럼 깝치던 click me! 버튼이 왼쪽 위에 얌전히 있게 된다. 이제 click me!를 눌러준다. 그럼..
이번에 학교에서 CTF 개최를 하게 되면서 웹 해킹 문제이 뭐가 있나 찾아보다 친구 추천으로 wargame.kr 문제를 풀어보기로 했다. 로그인하고 들어가보니 가장 맨위에 있는 문제가 already got이기에 already got이라는 문제를 풀어보도록 하겠다. 우선 already got을 누르게 되면 다음과 같이 뜬다. 해석하면 너는 HTTP 응답 헤더를 볼 수 있냐고 한다. 이제 start 버튼을 누르자 누르면 다음과 같이 나온다. 크롬의 경우 F12를 누르게 되면 다음과 같은 화면이 뜨는데 여기서 Network를 클릭해보면 다음과 같이 나오게 된다. 만약 다음과 같이 나오면 Ctrl + R을 눌러주면 된다. 그 후 already got을 클릭하게 되면 다음과 같이 나오는데 여기에 FLAG라고 있을..
SQL Injection - Blind - Time Based 페이지에 들어가게되면 다음과 같은 페이지가 나오게 된다. 이번 페이지는 결과값을 이메일로 보내준다고 되어있는데 이메일 주소를 적는 칸이 없다. 그러므로 이번 문제는 참, 거짓의 결과를 알 수가 없다. 그래서 우리는 sleep()함수를 이용하여 참, 거짓을 알아보도록 하겠다. 처음에는 이게 무슨 소리인가 했는데 값 뒤에 sleep()함수를 넣어 만약 참이면 sleep 함수가 실행되고 거짓을 경우 sleep 함수가 실행되지 않도록 하는 방식으로 참, 거짓을 구분하는 것이다. ※ sleep(시간) : 시간만큼 시간을 지연시키는 함수 먼저 항상 참인 값부터 넣어보자 ' or 1=1 and sleep(2)# 결과를 넣으면 다음과 같이 sleep함수가 ..
Blind SQL Injection SQL Injection의 결과가 참 과 거짓으로만 나오는 페이지에서 참, 거짓만으로 DB의 정보를 가지고오는 SQL Injection 공격 ˙ Blind SQL Injection 쿼리에 사용하는 함수 1. substr : 첫번째 인자로 받은 문자열을 지정한 길이만큼 출력하는데 사용하는 함수 2. ascii : 문자를 아스키코드로 변환하는데 사용하는 함수, 작은따옴표 같은 특수문자 우회할 때 사용한다. 3. limit : 문자열의 길이를 반환할 때 사용 Boolean Based Injection ˙ 참과 거짓만 출력하는 페이지에 공격자가 조작한 쿼리로 인해 DB 내용을 노출하는 취약점 실습하기 1. SQL Injection - Blind - Boolean Based 찾..
이번에는 블로그 방식의 SQL Injection을 해보도록 하겠다. 일단 SQL-Injection(Blog)를 클릭하면 다음과 같이 나온다. 이제 여기서 SQL Injection 공격이 먹히는지 확인하기 위해 '를 입력해보자 입력하면 다음과 같이 나오는데 우리는 여기서 사용하는 DB는 MYSQL이라는 점을 알 수 있다. 또한 bee')라는 것이 왜 나왔는지 의심해봐야한다. 이제 여기다 '입력후 아무 말이나 입력해보자 현재 듣고 있는 노래가 마크툽 노래여서 '마크툽이라고 입력했는데 다음과 같이 나왔다. 여기서 우리는 밑줄 친 부분을 분석해보면 '마크툽', 'bee')' 인것인데 지금 짝이 맞지 않아서 에러가 생긴것으로 추측해 볼 수 있다. 그렇다면 DB에 전송될 때는('입력내용','계정명')으로 전달한다고..
Login Form / Hero 페이지(sqli_3.php)에 들어가면 다음과 같이 나온다. 해석하면 '너의 슈퍼히어로를 입력해라' 이런 뜻이다. 처음에 나는 부모님 이름을 적었는데 안되었다. 그래서 슈퍼맨, 배트맨 등 히어로 이름을 다 적었지만 그것도 안되었다. 그래서 고민을 하다가 이 페이지가 SQL Injection 페이지인 만큼 SQL injection 공격을 수행해야 하는 것 같았다. 순서 1. 사용 중인 DB 서버 알아내기 - '(작은 따옴표) '를 입력하니 다음과 같은 에러 메시지가 나왔다. 다음 메시지를 통해 우리는 사용중인 DB가 MYSQL이라는 것을 알아 낼 수 있었다. 2. DB안에 있는 전체 내용 알아내기 - ' or 1=1# 로그인 창에(패스워드 창도 가능)에 ' or 1=1#을 ..
AJAX = Asynchronous JavaScript and XML의 약자로써 HTML, 자바스크립트, JSON을 혼합하여 사용하는 기술 JSON = Javascript Object Notation의 약자로써 서버와 클라이언트가 데이터를 주고받는 표현 방법 JQuery = 자바스크립트 라이버리 중 하나, 클라이언트에서 스크립트 언어를 사용할 때 이를 단순화 하고, AJAX 기능을 제공한다. 실습하기 SQL Injection(AJAX/JSON/JQuery)를 들어가면 다음과 같은 화면이 뜨는데 여기에 아무거나 입력해본다. 특이한 점은 키보드에 입력과 동시에 알맞은 결과를 바로 띄워준다는 것이다. 이제 여기에 SQL Injection 공격을 수행하여 정보를 알아내 보도록 하겠다. 일단 SQL Injecti..
3년안에 내집 마련
'분류 전체보기' 카테고리의 글 목록 (11 Page)