본문 바로가기

전체 글

[SQL Injection] union을 이용한 데이터 추출 SQL InjectionSQL Injection이란 악의적인 SQL 구문을 주입하여 Database가 비정상적인 동작을 하는 것을 말한다.인증 우회 (5주차)데이터 탈취 (6주차)데이터 추출SQL Injection을 통해 데이터를 추출할 수 있다. DB 데이터를 사용하는 곳 확인 데이터가 화면에 나오는지 확인크게 두 가지 방법을 통해 SQL Injection을 이용할 수 있는지 여부를 알 수 있다.  그리고 웹 페이지에 데이터가 표시되는지 여부에 따라 두 가지 경우에 대해 데이터 추출이 가능하다. 게시판 로그인, 아이디 중복 체크 웹 페이지에 데이터가 표시되는 경우에 대해 데이터를 추출하는 방법으로 SQL 쿼리를 작성할 수 있다.SELECT * FROM member WHERE id = '___' and .. 더보기
[SQL] union과 order by Unionunion이란 두 SFW 구문을 연결하는 합집합 형태의 연산을 말한다.(select ~~) UNION (select~~) 와 같은 형태로 작성할 수 있다. + UNION ALL 은 중복을 허용 단 조건이 있는데, UNION 연산에서 양 SQL query 칼럼의 개수는 동일해야 한다.그렇지 않으면 오류가 출력되는데 아래와 같다.   Order  by Order by란 특정 칼럼에 따라서 출력 table의 row를 정렬하는 명령어이다.select id,pass from member order by idselect id,pass from member order by pass order by 칼럼명 형식으로 작성하여 정렬을 할 수 있고,칼럼이 위치한 index를 통해서도 정렬할 수 있다. 만약 id와 .. 더보기
[CTF] Login Bypass 1 풀이 0. 문제 설명 normaltic1 로 로그인하자!현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234 1. 풀이 먼저 Burp Suite를 열어서 로그인을 진행하였다.그리고 history를 확인하였는데, 로그인 성공시 리다이렉트(302)를 통해 index.php 페이지 반환하는 것을 확인했다.만약에 로그인이 되지 않을 경우 바로 login.php 화면을 다시 보여준다. 1-1. 식별 / 인증 동시 확인   SELECT userid FROM 테이블 WHERE userid='___' and userpass='___'; 식별 / 인증 동시 로직인지 확인하기 위해 먼저 주석처리를 해보았다. 이미지와 같이 id에 doldol'#을 넣고, 비밀번호에 dol1234가 아닌 무작위 문자열.. 더보기
[CTF] Pin Code Crack 풀이 0. 문제 탐색아래의 이미지와 같이 PIN Code를 알아내 인가를 받는 문제였다. 4자리 PIN Code를 입력하는 횟수에는 제한이 없었다. 웹 브라우저가 새로 열릴때, 정답인 PIN Code가 변경될 수 있다는 점을 생각하여 초기에 실행한 브라우저로 풀었지만, 다행히 그런 기능은 없었다. 먼저 아무 숫자를 넣어보고 실행을 시켜보았다. url : http://ctf.segfaulthub.com:1129/6/checkOTP.php?otpNum=1234번호를 기준으로 실행을 시켜야 한다는 것을 알았고, 실행을 했을 때 달라지는 내용을 기준으로 삼으면 된다고 생각했다. 이와 관련하여 총 2가지의 방법을 떠올렸다. HTTP 상태 코드 기준Script 문자 기준(Burp Suite 무료버젼 Intruder는 매.. 더보기
게시판 구현하기(페이징, 찾기) 보호되어 있는 글입니다. 더보기
게시판 구현하기(글 작성, 수정, 삭제) 1. 게시판 글 작성 게시판 글 작성 페이지는 제목과 내용만 입력 받도록 하였고, 작성자는 이미 세션에서 받은 유저 정보를 바탕으로 직접 기입하였다. (현재 hi 라는 닉네임을 가진 아이디로 로그인 한 상태) bulletin_write.php더보기 MyPage Logout 글쓰기 제목 작성자 내용 .. 더보기
[Algorithm] 그리디 알고리즘(탐욕 알고리즘) 그리디 알고리즘(Greedy Algorithm)문제를 해결하는 과정에서 가장 최적이라고 생각되는 선택의 집합따라서 모든 과정에서 최적의 선택을 하게 되는 알고리즘이다 왜 그리디 알고리즘인가?탐욕스럽게(greedy) 현재 상황에서 가장 좋은 선택을 한다는 특성 때문에 그리디 알고리즘이라고 불림 예시) 동전을 적게 사용하여 거스름돈 구하기  그리디 알고리즘 수행 과정해 선택 : 현재 상태에서 가장 최선이라고 생각되는 해를 선택한다.적절성 검사 : 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사한다.해 검사 : 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사한다. 전체 문제를 해결하지 못한다면 1번으로 돌아가 같은 과정을 반복한다. 장점구현이 간단하고 직관적이다연산 속도가 빠르고.. 더보기
Burp Suite Prac 문제 풀이 Burp Suite Prac 1url을 열고, 먼저 개발자 도구를 열어보았다. header User-Agent에 segfaultDevice라고 넣어서 보내라는 주석이 달려있었다. 요청 헤더 코드를 변경해야 하므로, proxy 서버를 열어 요청 헤더를 변경해주어야 한다. Burp Suite을 열고 proxy 서버를 통해 요청 헤더를 가져왔다. 위의 header 코드 중에서 User-Agent 부분을 지우고 segfaultDevice 라고 바꾸고 Forward를 눌러 전송을 하면 이전의 페이지와 달리 "Congrat!!!"가 추가된 것을 볼 수 있다. 다시 개발자 도구를 열어 주석을 보면 최종적으로 Flag를 얻을 수 있다.  Burp Suite Prac 2url을 열어 1번 문제와 마찬가지로 개발자 도구를.. 더보기