본문 바로가기

Hacking8

8.SQL Injection>사용하는 DB이름,테이블 2 안녕하세요 베비온입니다. 저번에 했던거를 조금 짧게 나타내보겠습니다. 저번엔 테이블명도 많고 많아서 뭘 봐야할지 모르겠었지만 이번엔 다르게 접근해보겠습니다. DB 알아내기 select '1','2','3','4','5',schema_name,'7','8','9','10','11' from information_schema.schemata -- 결과화면입니다.보통은 php안에서 sql을 사용하기위해 미리 db를 지정합니다. 테이블과 컬럼을 가져오기위해 사용해봤습니다. ㅎ;; 이 db를 가지고 table명을 알아볼까요 테이블명 알아내기 a' union select '1','2','3',table_schema,'5',table_name,'7','8','9','10','11' from information_sc.. 2017. 5. 3.
7.SQL Injection>회원정보 출력 안녕하세요 베비온입니다. 이번엔 union을 이용해 회원정보들을 출력해보겠습니다. 저번에 테이블명과 컬럼명을 출력했었죠? 이번엔 그것을 이용해서 회원정보들을 가져와볼게요 글 제목인 6번에 아이디를, 글쓴이인 4번 필드에 비밀번호를 출력해보겠습니다.회원정보 출력하기 a' union select '1','2','3',logpw,'5',logid,'7','8','9','10','11' from member -- 차례로 아이디와 비밀번호를 출력했습니다. 맞는정보인지 볼까요? 비교해보면 맞네요! 비밀번호를 암호화하여 저장하지 않았기때문에 바로 출력이 됩니다. 후에 암호화하여 출력하는 것까지 해볼게요 2017. 4. 30.
6.SQL Injection>테이블 명, 컬럼 명 알아내기 안녕하세요 베비온입니다.오늘은 저번에 했던 union을 사용해서 테이블 명과 컬럼 명을 알아내보겠습니다. 저번에 게시판 페이지에서 사용하는 컬럼 갯수는 11개라는것을 알아내었습니다.검색 부분에 a' union select '1','2','3','4','5','6','7','8','9','10','11' 을 입력해줍니다. 제일 아래부분이 결과창입니다. 1~11을 출력하는 select를 사용함 으로써 어느 부분에 어느 컬럼이 사용되었는지 볼 수 있습니다. 글번호엔 1번 컬럼, 글 제목엔 6번컬럼, 댓글 갯수는 10번컬럼 이런식으로요저희가 얻고싶은건 테이블명, 컬러명입니다.즉 데이터 형태가 문자형입니다.숫자형태가 들어가는 num이나 see는 안되죠 그럼 저희는 글제목인 6번에 한 번 출력해보겠습니다.db에 많.. 2017. 4. 30.
5.SQL Injection를 위한 UNION 안녕하세요 베비온입니다. 저번에 컬럼 갯수를 세는 sql injection을 수행했었죠? 이번엔 그것을 이용해서 테이블명, 컬럼 명을 뽑아내겠습니다. 그 전에 먼저 UNION이라는 sql문을 짚고 넘어가겠습니다. 저번에 list.php가 11개의 컬럼을 사용한다고 했었습니다. 이 컬럼에 제가 원하는 것들을 출력하고자 합니다. UNION 이라는 sql문을 사용해서 말이죠 union은 2 종류에서 한번 다룬적이 있었지요? 간단하게 알아보고 가겠습니다. union 은 두 개의 결과를 한 개의 결과로 합쳐주는 역할을 합니다. 즉 select한 두 개의 결과를 한개의 테이블로 만듭니다. 이것을 하기 위해선 조건이 있는데요1.두 개의 select에 사용되는 필드의 갯수가 동일해야 한다. 2. 두 개의 select에.. 2017. 4. 27.
4. 게시판의 컬럼 갯수 알아내기 안녕하세요 베비온입니다. 이번엔 게시판list.php에서 사용되는 DB의 컬럼 갯수를 세보도록 하겠습니다. 이 방법은 다른 query에서도 유효합니다. 로그인페이지에서도 사용가능합니다. 해당 페이지에서 사용되는 컬럼의 갯수를 세기 위해 order by 라는 옵션을 사용합니다. ORDER BY [Column] [ASC|DESC] 지정한 column을 기준으로 오름(ASC)|내림차순(DESC)을 합니다.column명으로 지정해도되고 column의 번호를 써도 됩니다. 순서는 앞에서부터 차례로 1,2,3 ... 이됩니다.column만 지정하고 오름(내림)차순을 생략할 경우 default값인 오름차순을 합니다. list.php의 검색에 order by를 해서 오류를 검색해 냅니다. ' order by 1 -- .. 2017. 4. 27.
3.SQL Injection - 로그인 우회하기 안녕하세요 베비온입니다. 포스팅을 위해 여러번 SQL Injection을 실습 해봤는데 잘 안되서 머리가 터질거같네요 가장 먼저 login 페이지를 우회하여 들어가보도록 하겠습니다. 정상적인 로그인입니다. 정상적으로 한 로그인이 완료된 것을 볼 수 있습니다. 이번엔 root를 우회해서 들어가보겠습니다. 1.주석처리 ID 에 root' -- ' 를 적었습니다. 패스워드를 입력 안해도 제대로 작동된 모습입니다. --는 mysql에서 한줄 주석 구문입니다. 즉 --뒤에 나오는 것들은 다 주석처리되어 실질적으로 처리가 안되게 하는 공격입니다. root' -- '를 입력함으로써 로그인하는 sql 쿼리문은 $sql=select logid,email from member where logid='root' -- '' .. 2017. 4. 24.
2.SQL Injection의 종류 안녕하세요 베비온입니다. 이번엔 SQL Injection의 종류가 어떤 것들이 있는지 살펴보겠습니다. 사용된 서버는 CentOS 7DB는 mysqlhttp는 apache언어는 PHP입니다. 1. 논리적 에러를 이용하는 SQL Injection SQL query 안에 들어가는 내용을 묶는 ' (작은따옴표)를 사용하여 의도적으로 에러를 일으키고 or 1=1 등의 논리적 에러를 통해 시스템 권한 체크를 우회하는 기법 *제가 만든 서버를 기준으로 테이블 명과 필드명을 사용했습니다.예시 ) select * from member where logid='logid' or '1'='1' ; 2.쿼리 가능 여부를 이용하는 Blind SQL Injection 쿼리의 결과가 참, 거짓에 따라 정보를 취득하는 기법 예시 ) .. 2017. 4. 24.
1. SQL Injection이란? 안녕하세요 베비온입니다. 오늘은 국정원 8대 취약점 및 OWASP TOP 10 상위권에 자주 등장하는 Injection중에서도 SQL을 이용한 Injection을 살펴보겠습니다. SQL Injection이란?웹 클라이언트의 반환 메시지를 이용하여 불법 인증 및 정보를 유출하는 공격. 웹 응용 프로그램에 강제로 구조화 조회 언어(SQL) 구문을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회할 수도 있다. 이 공격은 MS SQL 서버뿐만 아니라 모든 관계형 데이터베이스 관리 시스템(RDBMS)에서 가능하다.[네이버 지식백과] SQL 주입 공격 [SQL injection, -注入攻擊] (IT용어사전, 한국정보통신기술협회) 사전적 의미 입니다. 즉 SQL Query를 사.. 2017. 4. 24.