본문 바로가기

[LOS] Level 4 Orc 문제풀이 [힌트] 1. 주석처리 # : %23, ' : %27 2. Blind SQL을 통해서 패스워드를 한글자 한글자 비교해서 찾아야 함 3. length()를 사용해 패스워드 길이를 찾아야 함 length() 사용법 : ex) length('pw') = 5 -> 반환 값 5일 경우 1(True), 아닐 경우 0(False) 4. ascii와 substr을 이용해서 각 자리마다 하나씩 패스워드 찾기 ascii : Ascii code 표를 이용해서 문자를 10진수로 변경할 수 있다. ex) ascii('a') = 97 -> 반환 값 : 1(True) substr : 문자열에서 일부 문자열을 추출한다. ex) substr('pw', 1, 1) -> 반환 값 : 'p' ex) substr('pw', 1, 2) -> ..
[LOS] Level 3 goblin 문제풀이 6번째 줄에 preg_match를 보면', ", `를 사용하지 못하게 설정되어 있다. 7번째 줄에 id값에 guest가 들어가있고, no의 값을 받는다. 10번째 줄에 id가 admin이면 문제가 해결된다. 따라서 싱글쿼터(')를 사용하지 않고 id값에 admin을 넘겨주는 것이 목적이다. no값에 1을 삽입해보니 Hello guest라고 출력되는 것을 보니 guest의 no값은 1인것 같다. ※운이 좋아서 guest의 no값이 1이라는 것을 알아서 id='guest' and no={$_GET[no]}부분을 무력화 시킬 수 있겠지만, no의 값을 모르는 상태에서 쿼리문을 확실하게 무력화시키기위해서는 의미없는 값을 집어넣는 것이 가장 좋다 MySQL의 문자열 함수 MySQL에서 SQL Injection을 ..
[LOS] Level 2 Cobolt 문제풀이 SQL Comment Attack SQL Query를 가장 쉽게 정복할 수 있는 방법중에 하나는 바로 주석을 이용하는 것이다. Mysql에서 많은 종류의 주석이 쓰이는데, 공격에 많이 쓰이는 주석을 말해보면, 1. -- (Mysql기반) 2. # (%23 : 오라클기반) 3. /* 4. // 5. %00(주석은 아니지만 쿼리를 바로 끝낼 수 있는 것 Null Byte 문자) 7번째 줄을 보면 gremlin 문제와 비슷해보이지만, pw부분에 md5()함수로 패스워드를 해싱하는 것을 볼 수 있다. 10번째 줄을 보면 id의 값이 admin이면, cobolt문제가 해결되는 것 같다. 즉, 패스워드 값을 확인하지 않는다는 것이다. gremlin문제와 같이 id값에 admin을 넣고 pw부분을 주석처리 해보도록하..
[LOS]Level1 gremlin 문제풀이 SQL Injection SQL Injection은 1998년에 phrack에 기법이 소개된 이후로 언제나 owasp 상위권을 차지하고 있으며, 수 많은 웹 사이트에서 수많은 개인정보를 유출하는데 사용된, 또는 사용되고 있는 기법이며, 웹 어플리케이션에서 일어나는 취약점 중 가장 강력한 취약점 중 하나이다. PHP, JSP등의 웹 프로그램에서 DB서버로 전달되는 Query를 특수문자(싱글쿼터, 백슬래쉬 등)을 이용해 공격하는 것을 말한다. php 소스를 확인해 보니 가장먼저 10번째 줄의 소스가 눈에 띈다. if($result['id']) solve("gramlin"); php 소스에 대해 자세히는 모르지만, 대충 추론해보자면, "Id의 결과가 있으면 gremlin 문제는 해결된다"라는 의미인 것 같다...
개념4 데이터베이스의 구성 요소 개체(Entity) 파일 시스템의 레코드에 대응 데이터베이스가 표현하려고 하는 유형, 무형의 정보 대상으로 존재하면서 서로 구별될 수 있는 것 물리적 혹은 개념적이며, 실세계에 독립적으로 존재 속성(Atttribute) 데이터의 가장 작은 논리적 단위 파일 구조상의 데이터 항목 또는 데이터 필드에 해당하는 것 괸계(Relationship) 개체-관계 모델 현실세계를 개념적으로 표현한 것으로 Peter Chen에 의해 제안 개체 간의 관계 표현에 제한이 없다(속성들에 대한 관계 없음) 개체(Entity), 관계(Relationship), 속성(attribute)으로 묘사 E-R 다이어 그램 개체 간의 관계는 물론 시스템 내의 역할을 하는 모든 개체들, 즉 조직, 부서, 사용자, 프..
개념 3 DBA 데이터베이스의 설계, 구현과 유지, 데이터베이스 관리 시스템의 책임을 지는 사람 데이터 모델링을 수행하고 데이터베이스 스킬마를 생성 주로 데이터 제어어(DCL)을 이용하여 무결성을 유지 응용프로그래머 응용 프로그램을 구현 데이터베이스 조작어를 호스트 언어에 포함하여 데이터베이스를 접근 일반 사용자 데이터 처리 및 데이터 값 관리 데이터를 저장하고 저장된 데이터를 사용 데이터 모델 현실세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 논리적으로 표현한 것 데이터 모델의 종류 개념적 데이터 모델 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보구조로 표현하기 때문에 정보 모델이라고도 함 대표적으로 개체..
개념 2 스키마 - DB를 구성하는 개체(Entities), 속성(Attributes), 관계(Relations) 및 데이터 조작(Manipulation) 시 데이터 값들이 갖는 제약조건 Constraint 등에 관해 전반적으로 정의 - 스키마는 데이터 사전에 저장되며, 다른 이름으로 메타 데이터라고도 한다. - 스키마는 메타데이터의 집합 - DB 구조와 제약사항이 묘사된다. 외부(external) 스키마 - 공용의 의미보다는 어느 개인이나 특정 응용에 한정된 논리적 데이터 구조 - DB의 개별 사용자나 응용 프로그래머가 접근하는 DB를 정의 - 사용자의 관점을 기술 개념(Conceptual) 스키마 - 전체적으로 통합된 논리적 데이터 구조로서, 접근 권한, 제약조건, 보안 정책, 무결성 규칙을 명세 - 단순히 ..
개념 1 데이터베이스 : 업무 처리를 위해 사용자들이 공용으로 사용하기 위해서 통합, 저장, 운영하는 데이터의 집합 DBMS : DataBase Management System(데이터베이스 관리 시스템) 사용자와 DBMS와의 관계데이터들이 모여져 있는데, 그 중간에 관리하는 DBMS가 사용자가 사용하는 프로그램에 의해서 관리하고, 사용하고, 저장하고, 삭제하고가 이루어진다고 보면 된다. 통합된 데이터(Integrated Data)하나의 주제에 따라 중복을 최소화한 데이터의 집합 저장된 데이터(Stored Data)언제든지 필요할 때 이용할 수 있도록 저장된 데이터의 집합 공용 데이터(Shared Data)여러 사용자와 다수의 응용 시스템이 공유할 수 있도록 만든 데이터의 집합 운영 데이터(Operational D..
[파일 및 디렉토리 관리]2.8 CentOS 6.7 /etc/services 파일 소유자 및 권한 설정 서비스 관리를 위해 사용되는 /etc/services 파일이 일반 사용자에 의해 접근 및 변경이 가능하면, 정상적인 서비스를 제한하거나 허용되지 않은 서비스를 악의적으로 실행시켜 침해사고를 발생 시킬 수 있다. /etc/services 파일 소유자 및 권한 설정(취약한 설정) /etc/services 파일은 리눅스 서버에서 사용하는 모든 포트들에 대해 정의 되어 있는 파일임에도 불구하고, 불 필요한 퍼미션으로 관리되어 지고 있음을 확인할 수 있다. 악의적인 목적을 가진 사용자가 서비스 중인 항목을 확인했을 때 telnet이 동작 중임을 확인하고 services 파일에 접근해 telnet의 port 번호를 23에서 10번으로 수정했다. 그 후 원격에서 접근할 수 있는 프로그램인 Xshell을 통해 변견한 ..
[파일 및 디렉토리 관리]2.7 CentOS 6.7 /etc/syslog.conf 파일 소유자 및 권한 설정 기본적으로 시스템 운영 중 발생하는 info 및 alert 등에 대한 기록을 남기기 위한 (r)syslog.conf 파일의 보안 설정이 되어 있는지 점검이 필요하며, syslog 데몬은 시스템의 로그를 기록하는 전용 데몬으로써 원격 또는 로컬 시스템의 커널 메시지 및 시스템 로그를 감시하는 역할을 하며, 이 설정이 제대로 되어 있지 않을 경우 적절한 로그가 시스템 로그 파일에 남지 않아 악의적인 목적의 사용자가 침입했을 때의 흔적이나 시스템 오류 사항에 대한 분석이 어렵게 된다. /etc/syslog.conf 파일 소유자 및 권한 설정(취약한 설정) rsyslog.conf 파일은 데몬 프로세스의 구성 파일 중 하나로, 메시지를 생성하는 대상, 위험수준, 메시지 전달 대상을 가지고 규칙을 설정해줌에도 불구..