본문 바로가기

전체 글

(63)
웹 해킹 공부 일기장 2 - 1 (SQL Injection 데이터 추출) 저번 주차에서 SQL injection이 무엇인지? 그리고 SQL Injection을 통해 인증을 우회하는 방법을 공부해보았습니다. 이번 주차에서는 SQL Injection을 사용하여 데이터베이스의 데이터를 추출하는 방법을 알아보겠습니다. 웹 서버에서 데이터베이스를 사용하기 위해 SQL 쿼리를 사용하여 데이터베이스에게 명령을 내리는 과정이 있을 것입니다. 전 시간에 했던 로그인도 우리에게 아이디와 비밀번호를 입력받아 SQL 쿼리문을 만들어 해당 아이디와 비밀번호인 데이터가 있는지 데이터베이스에 확인해서 있으면 달라고 하는 명령을 내리는 것입니다. 즉, SQL Injection은 이때 우리의 입력을 받기 때문에 우리가 원하는 데이터베이스에서 수행해줬으면 하는 명령을 하게하기위해 쿼리문을 조작하는 것입니다...
웹 해킹 공부 일기장 1 - 과제 (챌린지) 4. 관리자 계정으로 로그인하기. 하지만 계정의 아이디를 알 수 없다... 관리자 계정으로 로그인을 하려고 하는데 아이디를 알 수 없는데 어떻게 로그인할까요?? 일단 SQL Injection이 가능한지 먼저 알아보겠습니다. 일단 확인해보니 SQLI 가 가능하며 비밀번호를 틀리게 입력하여도 로그인이 가능한 것을 보니 식별과 인증을 동시에 하기때문에 SELECT로 찾은 계정이 있기만하면 해당 아이디로 로그인이 되는 것 같습니다. 모든 계정에 대해 SELECT할 수 있다면 해당 계정으로 로그인이 될 것 같습니다. // 추측 로그인로직 select * from users where id='$userId' and password='$userPw'; // or 1=1로 전체 계정에 대해 limit로 한 계정만 가져..
웹 해킹 공부 일기장 1 - 과제 1. admin 계정으로 로그인하기 doldol의 계정으로 로그인을 하니 loginProc.php를 GET으로 입력한 데이터와 함께 userId=doldol & userPw=dol1234 요청을 보내는 것 같습니다. 그런데 응답에서 result: "ok" 가 보이는데 이것으로 왠지 로그인 성공 여부를 결정할 것 같습니다. 그럼 admin으로 로그인하면 어떤 결과가 나오는지도 확인해보겠습니다. 역시나!! result값이 fail로 나옵니다. 그럼 응답을 ok로 바꿔주면 로그인이 될 것 같습니다. 보통 기본적으로 버프 스위트는 요청만 잡기때문에 응답을 잡기위해서는 원하는 응답의 요청을 오른쪽 클릭하면 Do intercept에서 이 request의 respons를 잡겠다는 것을 클릭하고 Forward로 요청을..
웹 해킹 공부 일기장 1 - 2 (인증 우회) 간단한 실습을 하면서 SQL Injection으로 인증우회하는 것을 배웠는 데 직접 챌린지를 통해 해보겠습니다. 챌린지 1. normaltic1 계정으로 로그인 하기 저번 시간에 어떻게하면 SQL Injection을 사용하는지 알았으니 한번 써보자!! 오잉??? 로그인이 실패하네요... 주석이 안되나?? 생각해볼 수 있습니다. 하지만 우리에겐 다른 방법이 하나 더 있습니다. 휴.. 다행히 이 방법이 먹히네요. 챌린지 2. normaltic2 계정으로 로그인하기 오!! 주석을 사용하니 바로 로그인이 되었습니다. 챌린지 3. admin 계정으로 로그인하기 우리가 배운 방법이 안되네요... 이번 챌린지에서 알아야 할 것이 있습니다. 바로 앞에서 했던 것은 우리가 SQL Injection 이 취약점이라 생각해서..
웹 해킹 공부 일기장 1 -1 (SQL Injection) 이번주차부터 웹 해킹 기법에 대해 공부를 시작해보겠습니다. 이번주에 해볼 해킹 기법은 SQL Injection입니다. SQL Injection SQL이 무엇인지는 웹 개발에서 데이터베이스를 연결하며 데이터베이스를 사용하기위해 배웠습니다. SQL은 데이터베이스를 정의할 수 있으며, 안에 있는 데이터를 조작하며 제어할 수 있습니다. Injection은 무엇일까요? 이제부터 해킹 기법 중 이름에 Injection이 들어간다면 주입하기, 끼워넣기로 해석하면 됩니다. 즉, SQL Injection은 SQL 구문을 끼워넣는다고 보면됩니다. SQL Injection을 SQLI 로 표현하겠습니다. (너무 길어서...ㅠㅠ) SQLI를 사용하게 되면 원래 작동해야하는 방식이 아닌 우리가 특정 문자를 끼워넣어 완전 다른 S..
웹 개발 공부 일기장 4 과제 (마이페이지) 게시판을 만들어 보기 전에 마이페이지 먼저 만들어보도록 하겠습니다. 마이페이지는 데이터베이스에 있는 사용자의 정보를 출력해주고 수정할 수 있도록 만들어 보겠습니다. Home // userid를 넣어주면 해당 user의 데이터를 가져옴 Page // user의 정보를 출력 이름 : 아이디 : 이메일 : 전화번호 : 생년월일 : // 회원정보를 변경하고 싶을 때 링크 클릭 시 수정할 수 있는 페이지로 이동 회원정보 변경 위와 같이 작성하여 마이페이지를 만들어 주었습니다. 를 넣어주면 php에서 생성한 변수를 html에서 출력할 수 있습니다. 이것을 통해 user 정보를 출력했습니다. 결과 페이지를 보겠습니다. 회원가입할 때 이름, 아이디, 이메일만 적어주었기 때문에 전화번호와 생년월일은 비어있습니다. 이것을..
웹 개발 공부 일기장 4 - 과제 (쿠키탈취 및 키로거) 1. 자바스크립트 공부하고 쿠키 탈취나 키로거 만들어보기 쿠키 탈취 자바스크립트에는 XMLHttpRequest 객체가 내장되어 있는데 이 객체를 통해 서버에 데이터를 요청하고 응답받은 데이터를 처리할 수 있습니다. const Http = new XMLHttpRequest(); // 객체 생성 const url = 'http://172.16.22.131/task4/check-cookie.php'; // 요청 URL Http.open('GET', url); // 해당 url로 GET 요청을 지정 Http.send(); // 실제 요청 전송 위와 같이 코드를 입력하면 XMLHttpRequest 객체를 이용하여 요청을 보낼 수 있습니다. 실제 요청을 보내고 응답이 결과를 네트워크 탭을 통해 확인 할 수 있습니..
웹 개발 공부하기 4 - 과제 (자바스크립트) 1. 자바스크립트 공부하고 쿠키 탈취나 키로거 만들어보기 일단 자바스크립트가 무엇인지 알아보겠습니다. 웹을 만들때 html, css를 사용하면 html은 기본 뼈대 즉 웹 페이지가 구성하는 것을 만들 수 있습니다. css는 html로 만들어진 웹 페이지를 꾸며 줄 수 있습니다. 이미지와 같이 왼쪽은 html를 사용하여 페이지의 기본 뼈대를 만들고 css를 사용하여 오른쪽처럼 꾸며주는 것입니다. 여기에 자바스크립트를 더해주어 보여주기만하는 것이 아닌 어떠한 동작을 할 수 있게 할 수 있습니다. 예를 들면 광고 이미지가 자동으로 넘어가게 하거나 더보기를 클릭하면 페이지가 넘어가지 않고 좀 더 많은 서비스를 보여주는 등 사용자에게 편리한 기능을 제공할 수 있습니다. 이제 자바스크립트를 사용하기 위한 기본적이고..