웹 취약점 종류(OWASP TOP 10)
1. 어떤 상황에서 이 취약점이 발생하는지
2. 어떻게 공격 해야하는지
3. 취약점이 미치는 영향
1. OWASP란?
Open Web Application Security Project의 약자이다.
OWASP란 오픈소스 웹 애플리케이션 보안 프로젝트로, 주로 웹에 관한 정보노출,
악성 파일 및 스크립트, 보안 취약점 등을 연구한다.
1. Injection (인젝션)
인젝션 취약점은 SQL, OS, LDAP 등에 해당되며 신뢰할 수 없는 데이터를 명령어나 질의문의 일부분으로서 보내질 때 발생하는데, 공격자의 데이터는 개발자가 의도하지 않은 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다.
1-1) OS 인젝션 (command injection)
외부 URL 또는 파라미터로 전달이 가능한 DB와 연동된 페이지에 대해여 시스템 명령어 (ls, cat, ifconfig 등) 삽입으로 운영체제 명령어 실행 결과를 출력하는 인젝션 종류입니다.
1-1-1) command injection 예제 코드
php의 command 인젝션 예제 코드입니다.
참고 https://www.owasp.org/index.php/Command_Injection
Get 방식으로 파일 이름을 받고 그 파일을 삭제해 주는 기능을 하고 있습니다. 여기서 system() 함수를 사용하므로 써 command injection 수행이 가능합니다.
' ; ' 를 이용해 여러가지 명령어를 system 함수에 주입할 수 있습니다.
; 은 여러가지 명령어를 한 줄에 입력 할 때 나누는 것으로 사용됩니다.
EX)
1-1-2) 실습
localhost/command.php?filname=a.php;pwd
system 함수에서 ‘rm 파일명’ 명령어 하나와 ‘pwd’라는 명령어 두개가 실행되고, 반환 값으로 보여지게 됩니다.
1) ?filename=a.php; ifconfig
2) ?filename=a.php; cat /etc/passwd
3) ?filename=a.php; id
1-2) sql injection
Sql injection 이란 ?
DB와 연동된 웹 어플리케이션에서 SQL 질의문에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼에 조작된 쿼리를 삽입하여 공격자에게 공개되지 않은 웹 서버의 DB 정보를 열람 또는 조작을 할 수 있는 취약점입니다.
1-2-1) 예제
예제 코드
게시판 글 수정 사이트 (실제 운영 싸이트가 아님!! 주의)
sql injection example
제목: hacked by xxx ‘--
조작된 쿼리문
update ssg2 set title ‘hacked by xxx ‘-- ‘ nickname=’’ textarea=’’ where id =’’
해석: 모든 ssg2 테이블의 title을 hacked by xxx로 변경 해라 (‘ -- 가 주석 처리)
결과 (모든 게시글의 title 값이 수정된다.)
2-2-2) sql injection 예제 2 (union sql injection)
예제 코드
웹 페이지( get 방식으로 글 번호를 입력 받아 해당하는 글 내용 출력)
Union sql injection을 통한 디비 긁어오기
union 이란?
두개 이상의 select 문을 결합하는데 사용하는 문법입니다.
자세한 내용은 공부해보시는 걸 추천합니다.
(Limit는 순차적으로 증가)
영향
데이터의 손실 또는 파괴, 책임 추적성 결여 또는 서비스 거부의 결과를 초래할 수 있다. 때때로 인젝션은 호스트를 완전하게 탈취할 수 있다.
'web > 웹 해킹 및 보안' 카테고리의 다른 글
OWASP 취약점 정리(3/10) XSS (0) | 2017.05.25 |
---|---|
OWASP 취약점 정리(2/10) 인증 및 세션 관리 취약점 (1) | 2017.05.25 |
PHP 비교 연산자 취약점 (magic hash) (0) | 2017.05.21 |
directory listing 취약점 막기(apache2) (0) | 2017.05.15 |
xss를 이용한 session 탈취 (0) | 2016.10.03 |
댓글