전체 글 썸네일형 리스트형 Blind SQL Injection Blind SQL Injection데이터를 입력하고 DB에 접근이 가능하지만 직접적으로 어떤 데이터가 반환되는지 알 수 없는 경우 이용할 수 있는 SQL Injection 공격기법이다. SQL 질의문 결과가 화면에 출력되는 경우 : Union SQL Injection에러메세지가 화면에 출력되는 경우 : Error Based SQL Injection그 외의 경우 : Blind SQL InjectionBlind SQL Injection은 최후의 수단이지만 1,2번의 Injection 기법에서도 이용이 가능하다. Blind SQL Injection에서 쓰이는 명령어는 크게 두 가지가 있다.substr()ascii()Substr()글자를 잘라주는 함수substr(문자열,start idx, count) 와 같은 .. 더보기 Error Based SQL Injection Error Based SQL InjectionSQL 질의 결과 에러가 출력될 때 사용되는 SQL Injection 공격 기법 SQL Query를 작동시켰을 때, 얻을 수 있는 에러는 크게 두 가지가 있다.문법 에러로직 에러문법 에러의 경우, SQL Query에 문법상의 오류가 존재하여 에러가 뜬 것이기에 공격 조건으로 사용할 수 없다.따라서 로직 에러를 이용하여 Error Based SQL Injection을 한다.Error Based SQL Injection에 사용 되는 명령어는 2가지가 존재한다.extractvalue()concat()Extractvalue()extractvalue() 명령어에는 각각 (xml 데이터, xml 표현식)이 들어간다. 이때, 적절한 xpath 표현식이 들어오지 않으면 에러.. 더보기 [CTF] SQL Injection 2 풀이 진짜! 데이터를 찾아랏! 0. 문제 탐색주어진 게시판에 normaltic이라고 검색을 했을때, ID칼럼에 normaltic, Info칼럼에 my name is normaltic이라고 입력이 된다. 또한 level과 Rank Point는 항상 '*******'와 같이 정보가 나타나지 않았다. 이어서 공백을 입력하거나, 다른 문자열을 아무거나 입력 했을 때는 ID부분만 입력 값으로 등장하고 info에는 공백이 출력 되었다. 종합해서 보면, ID 출력 부분에는 입력 값이 그대로 echo로 출력되고, Info의 경우 DB에 데이터가 존재할 때에만 데이터가 출력된다고 생각할 수 있다. 그리고 Level과 Ranking Point에서는 얻을 수 있는 정보가 없다. 이번에는 항상 참인 쿼리를 이용하여 게시판의 다른.. 더보기 [CTF] SQL Injection 1 풀이 문제 탐색비밀 데이터를 찾아내라! 검색을 통해 데이터를 조회할 수 있고, 결과가 게시판 형태로 등장하는 문제이다.검색 기능에서 SQL Injection을 할 수 있다고 생각했고, SQL 쿼리 구조가 어떻게 이루어져 있는지 알아보기 위해 a를 대입해보았다. 그 결과 a가 들어있는 3개의 row가 모두 출력되었다. 그리고 %를 입력했을 시, 처음 이미지와 같이 총 4개의 데이터가 출력되는 것을 확인했다.문자 'a'의 위치가 맨 앞부분 혹은 중간 부분에 있는 ID도 모두 인식이 된다면, 검색창 쿼리는 검색어의 앞뒤로 어느 문자가 오더라도 검색이 되게끔 짜여졌을 것이라고 생각했고, 코드는 아래와 같다.SELECT * FROM 테이블 WHERE id like '%검색어%' 따라서 '검색어'에 들어가는 문자로 S.. 더보기 [SQL Injection] 특정 데이터만 출력하기 검색 창 로직을 이용하여 doldol 데이터만 추출하기최종 데이터더보기 이번 모의해킹 스터디에서 배운 과정을 적극적으로 활용해야한다. 1. SQL Injection 포인트 찾기 2. COLUMN 개수 찾기3. 출력되는 column 위치 찾기4. DB 이름 확인 5. Table 이름 확인 6. Column 이름 확인 7. 데이터 추출 1. SQL Injection 포인트 찾기검색 창의 입력 값에 따라 데이터가 변하는 것을 확인하였고, 여러 입력 값을 넣어보았다. 입력값 : (공백) 입력값 : %' 입력값 : ' or '1' = '1 or True 연산을 사용하여 모든 정보를 얻을 수 있었다. 그리고 비밀번호를 입력하는 부분이기 때문에, 비밀번호로 추정되는 aaaa, qqqq, 1234, test1234.. 더보기 [CTF] Login Bypass3 풀이 0. 문제 설명 normaltic3 로 로그인하자! 현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol12341. 문제 탐색정말 많은 시도를 해봤다.문제 푸는 과정에서 칼럼명을 알아내긴 했는데, 칼럼 정보를 알고 있어도 힘들었다. id : doldol'# pass : randomString - 식별 / 인증 동시 + 계행 x 확인 -> 로그인xid : doldol' or '1' = '1 pass : randomString - fetch 함수 유무 확인 -> 로그인x(fetch 함수 존재)id : doldol' and '1' = '1 pass : dol1234 - 식별 상태 확인 -> 로그인oid : doldol' and pass='dol1234'# pass :.. 더보기 [CTF] Login Bypass 2 풀이 0. 문제 설명 normaltic2 로 로그인하자!현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234 1. 풀이이 문제는 여러번 시도 하지 않고 주석 처리 과정에서 바로 풀 수 있었다. id = 'doldol'#을 입력하여 쿼리의 남은 부분이 주석 처리 되는지 확인 하였고, 비밀번호는 무작위 입력값을 넣어주었다. 식별 / 인증 동시 로직에 계행이 없을 경우, 이 쿼리는 바로 로그인이 되는데 위의 그림처럼 바로 doldol 이라는 계정으로 로그인이 되는 것을 확인하였다. 따라서 주어진 문제(normaltic2 로 로그인하자!)의 정답을 알아내기 위해서는 doldol 대신에 normaltic2를 넣으면 쉽게 정답을 얻을 수 있었다. 2. 로그인 로직식별 / 인증 동시 로직".. 더보기 [웹개발] SQL Injection 확인 페이지 개발 login 우회 CTF를 풀 때, 로직을 만족시키는 테이블의 데이터는 어느 것이 있으며, 그 중 어떤 아이디로 로그인이 되는지 눈으로 확인하면서 풀기 위해 row를 출력하는 툴을 만들었다. 기존에 진행하였던 웹 개발에서 일부를 변경 및 수정하여 만들었고, css 세팅은 동일하다. 아이디와 비밀번호를 입력하면 서버에서 실행되는 query를 먼저 출력하고, 이어서 query를 만족시키는 row를 한줄씩 출력하도록 만들었다. login_page.php더보기 Login 아이디 비밀번호 로그인 회원가입 id pass nick email .. 더보기 이전 1 2 3 4 5 6 7 8 다음