반응형




안녕들 하시죠 !


오늘은 웹해킹 실습을 위한 환경을 구축해 보겠습니다.


우선 VMware의 Window7에 APM 과 워드 프레스를 설치해보겠습니다.



APM이란?


APM이란 Apache + PHP + Mysql이 통합되어 있는것으로 사용자로 하여금 쉽게 가상서버 환경을 구축할 수 있게 도와줍니다.


Wordpress란?


홈페이지 플랫폼인 wordpress는 2003년 제작되어 현재 7천만개가 넘는 사이트에서 사용중입니다.

국내또한 수많은 대기업에서 현재 사용중입니다.

본인 서버에 설치가 쉽고 여러 plugin들이 있기때문에 이슈가 되고있습니다.

저는 앞으로 exploit-database에 올라온 wordpress plugin의 취약점을 이용해 웹해킹 실습을 진행해볼 계획입니다.



우선 APM부터 설치하겠습니다.

현재 APM공식 사이트가 사라진 관계로 아래 URL에서 다운받겠습니다.


http://kldp.net/apmsetup/release/


아래 이미지의 제일 아랫부분에있는 2010010300.exe 버전으로 받겠습니다.



혹시 Host PC에서 다운받으셨다면 드래그해서 가상환경을 옮겨주세요.

더블클릭하여 실행시켜주시고 한국어로 선택하겠습니다.



다음 -> 동의함 -> 다음 -> 설치 로 쭉쭉 넘겨주세요.



설치가 완료되면 이렇게 나오는데 APMSETUP 7 for win32 실행하기만 체크하고 마침을 눌러줍니다.


설치가 정상적으로 진행 되었다면 다음과 같은 화면이 나올껍니다.



자, 이제 127.0.0.1 혹은 localhost/ 로 접속하게되면 다음과 같은 화면이 나올겁니다.



APM 설치를 완료했습니다.


저처럼 C드라이브에 설치를 하셨다면,

'C:\APM_Setup\htdocs' 경로에 웹페이지를 위한 .php, .html등의 파일을 넣게되면 됩니다.

우리가 사용할 wordpress 또한 'C:\APM_Setup\htdocs' 경로에 설치하게 될 것입니다.


자, 이제 Mysql을 들어가봐야겠죠? 

아래 이미지의 화살표가 가리키고있는 URL을 클릭하거나 localhost/myadmin/을 입력하게되면 phpMyAdmin 페이지로 넘어갑니다.




기본 사용자명과 암호는 root, apmsetup 입니다.

로그인을 하시면 아래와 같이 나옵니다.



사용권한 -> 새 사용자 추가



아이디 패스워드를 python으로 전체적 권한을 모두 체크하고 오른쪽 아래 실행을 누르겠습니다.



데이터베이스 -> 새 데이터베이스 만들기 ( wordpress 입력 ) -> 만들기



Mysql 설정까지 끝났고, 이제 wordpress 설치를 해보겠습니다. 

아래의 URL에서 3.8.1 버전으로 받겠습니다.


https://wordpress.org/download/releases/


다운받은 압축파일을 풀어 'C:\APM_Setup\htdocs' 의 경로에 넣어줍니다.



자 이제 URL에 localhost/wordpress 라고 입력해줍니다.

아래와 같이 오류가 뜨는데 Create a Configuration File을 눌러준 다음에 나오는 페이지에서 Let's go 를 또 눌러서 넘겨줍니다.



뭔가를 입력하는 창이 나왔는데요.

사용자이름에 python 비밀번호에 python을 입력하고 넘어가겠습니다.



입력하고나면 필요한 정보라는 창이 뜨고 앞서 입력했던 사용자명과 비밀번호를 입력하고 이메일주소를 입력한 후에 워드프레스 설치하기를 눌러줍니다.


자, 이제 설치가 끝났습니다.

URL에 localhost/wordpress를 쳐보겠습니다.



성공했습니다. 

다음시간에는 오늘 구축한 환경으로 SQL Injection을 시작으로 여러가지 공격 기법들을 해보겠습니다.


오늘은 여기까지입니다 감사합니다 !


 




'보안 > Web hacking' 카테고리의 다른 글

Lord of SQL Injection 2번 풀이  (0) 2018.11.07
Lord of SQL Injection 1번 풀이  (0) 2018.11.07
SQL Injection / 쿼리 삽입을 통한 인젝션  (0) 2018.11.02
SQL Injection 이란?  (0) 2018.11.02
OWASP Top 10 이란 ?  (0) 2018.10.24
반응형




안녕들 하시죠 !


오늘은 그 유명한 SQL Injection에 대해 알아보겠습니다.


우선 KISA에서 배포한 ' 홈페이지 취약점 진단ㆍ제거 가이드 ' 와 OWASP TOP 10 자료를 참고해봤습니다.


아래에 파일 있으니 참고해보세요.


홈페이지 취약점 진단제거 가이드.pdf


OWASP Top 10 2017.pdf


SQL Injection 이란?


데이터베이스와 연동된 웹 어플리케이션에서 SQL 질의문에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼( 웹 브라우서 주소 입력창 또는 로그인 폼 등 )에 조작된 질의문을 삽입하여 웹 서버의 데이터베이스 정보를 열람 또는 조작을 할 수 있는 취약점.


한마디로 웹브라우저에 조작된 값을 입력하여 DB에 있는 정보를 건들 수 있게되는 취약점.


아래는 SQL Injection 동작 과정입니다.


「 OWASP TOP 10 


「 홈페이지 취약점 진단ㆍ제거 가이드 





아래는 취약점 확인 방법 및 판단 기준입니다.


「 OWASP TOP 10 


「 홈페이지 취약점 진단ㆍ제거 가이드 



아래에는 대응 방안입니다.

필터링을 통하여 공격자가 임의의 조작된 값( ex) 'or 1=1 -- )을 입력하는 것을 방지하는 것이 중요합니다.


웹방화벽 ( 공격 문자가 오기 전에 차단 )을 통해 모든 사용자 입력 폼( 로그인 폼, 검색 폼, URL 등 )을 대상으로 특수문자, 특수구문 필터링 규칙을 적용.

또는 개발 단계에서 시큐어 코딩을 적용하여 임의로 파라미터를 입력하지 못하도록 필터링 적용.


「 홈페이지 취약점 진단ㆍ제거 가이드 



뒤에 있을 게시물에서는 직접 SQL Injection을 해보고 Lord of SQL Injection 사이트에서 문제를 풀어볼 계획 입니다.


오늘은 여기까지입니다 감사합니다 !

반응형


안녕들 하시죠 !


오늘은 OWASP Top 10 에 대해 알아보겠습니다.


OWASP(The Open Web Application Security Project)


2004년 부터 현재까지 3~4년에 한번씩 주로 웹에 관한 취약점 중에서 빈도가 많이 발생하고, 보안상 위협을 크게 줄 수 있는 것들을 10가지 선정하여 Top 10 으로 발표하고있는 보안프로젝트입니다.


아래에 한글버전을 pdf파일로 올렸으니 필요하신분 가져가세요. 


OWASP Top 10 2010.pdf


OWASP Top 10 2013.pdf


OWASP Top 10 2017.pdf





위에 있는 이미지를 보시면 2017년도의 Top 10 항목들은 2013년도 항목에 추가되거나 변화된것들이 보입니다.

그만큼 정보보호 분야는 급변하기 때문에 계속 공부 해야하는 필요성을 느꼈습니다.




특이한 점은 인젝션, 크로스 사이트 스크립팅(XSS) 항목은 2010년부터 쭉 상위권을 지키고있습니다.




A1 : 인젝션 ( Injection )


ㆍ SQL, OS, XXE, LDAP 등의 방법을 통해 코드를 주입하여 발생 시키는 취약점

신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생

ㆍ 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 올바른 권한 없이 데이터에 접근하도록 인터프리터를 속임


A2 : 취약한 인증 ( Broken Authentication )


ㆍ 인증 및 세션 관리와 관련된 어플리케이션 기능이 종종 잘못 구현되어 발생하는 취약점

ㆍ 공격자들이 암호, 키, 세션 토큰을 위험에 노출시킬 수 있거나 일시적 또는 영구적으로 다른 사용자의 권한 획득을 위해 구현상 결함을 악용하도록 허용


A3 : 민감한 데이터 노출 ( Sensitive Data Exposure )


중요데이터가 암호화 되지 않고 전송될 때 데이터를 탈취하거나 보호가 취약한 데이터를 훔쳐서 발생할 수 있는 취약점

ㆍ 공격자가 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하기 위해 보호가 취약한 데이터를 훔치거나 수정하여 사용자 또는 관리자에게 피해를 입힘


A4 : XML 외부 개체 ( XXE : XML External Entities )


ㆍ 웹에서 활용되는 외부 개체는 파일 URI 처리기, 내부 파일 공유, 내부 포트 스캔, 원격 코드 실행과 서비스 거부 공격을 사용하여 내부 파일을 

     공개하는데 활용

ㆍ XML 문서의 외부 개체를 확인하는 과정에서 발생하는 취약점


A5 : 취약한 접근 통제 ( Broken Access Control )


ㆍ 인증된 사용자가 수행할 수 있는 작업에 대한 제한이 적용되어 있지 않은 점을 이용한 취약점

ㆍ 권한이 없는 다른 사용자 계정에 접근, 다른 사용자의 데이터 수정, 접근 등의 기능 수행


A6 : 잘못된 보안 구성 ( Security Misconfiguration )


ㆍ 취약한 기본 설정, 미완성, 개방된 클라우드 스토리지, 잘못 구성된 HTTP 헤더 및 민감한 정보가 포함된 에러 메시지로 인한 결과

ㆍ 모든 운영체제, 프레임워크, 라이브러리와 어플리케이션을 안전하게 설정 필요

ㆍ 적절한 패치와 업그레이드 진행이 필요


A7 : 크로스 사이트 스크립팅 ( XSS : Cross-Site Scripting )


ㆍ 자바스크립트와 HTML을 생성하는 브라우저 API를 활용한 공격

ㆍ 주로 웹페이지를 업데이트 할 때 발생

ㆍ 사용자 세션 탈취, 웹 사이트 변조, 악성 사이트로 리다이렉션 등의 공격을 수행 가능


A8 : 안전하지 않은 역직렬화 ( Insecure Deserialization )


ㆍ 객체 및 데이터 구조를 이용하여 발생하는 취약점

데이터 변경을 이용하여 접근 통제 우회, 크로스사이트 스크립트 공격 등의 공격 가능


A9 : 알려진 취약점이 있는 구성요소 사용 ( Using Components with Known Vulnerabilities )


취약한 컴포넌트를 이용하여 발생한 취약점

ㆍ 어플리케이션 방어를 약화시키거나 다양한 공격과 영향을 끼칠 가능성이 존재


A10 : 불충분한 로깅 & 모니터링 ( Insufficient Logging & Monitoring )


ㆍ 사고 대응의 비효율적인 통합 또는 누락과 함께 공격자들이 시스템을 공격하고 지속성을 유지할만한 기회를 제공

ㆍ 더 많은 시스템을 중심으로 공격할 수 있게 하며, 데이터를 변조, 추출 또는 파괴할 수 있는 가능성 제공



앞으로 OWASP Top 10을 기반으로 저만의 환경을 구축하고, 하나하나씩 공격 기법들을 시행해본 뒤, 어떤 방식으로 예방하고 대처하는것이 좋을까 ?

에 대해 공부해보고 글을 올리겠습니다.


오늘은 여기까지 입니다 감사합니다 !

+ Recent posts