웹 해킹에 사용되는 많은 방법 중 하나인 커맨드 인젝션 공격이란 정상적인 명령어에 또 다른 명령어를 추가하는 방식이다
아래는 정상적인 방법이며 많은 사람들이 서버의 네트워크 상태를 확인하기 위해 ping 명령을 사용하고있다
이렇게 ping 아이피 명령을 사용하면 서버와의 통신 상태가 응답되며 일반적으로 많이 사용하는 방식이다
이걸 이용해 커맨드 인젝션 공격을 진행하려면 아래같이 할 수 있다
정상적인 ping 명령어 뒤에 세미콜론 ';' 을 포함하여 cat /etc/passwd 명령을 전송한다
그럼 ping 명령에 대한 결과와 cat /etc/passwd 명령에 대한 결과를 확인할 수 있다
추가 설명으로 cat /etc/passwd 명령은 리눅스 계열에서 서버의 사용자 정보를 확인하는 명령어이다
위의 예제는 알기 쉽게 설명한 예제이며 실제로 저런 간단한 방법에 뚫리는 웹 서버는 많지 않을 것이다
그럼 웹 개발 시 커맨드 인젝션 공격을 방어하는 방법은 무엇이 있을까?
웹 개발 시 소스에서 exec 명령이나 system 명령같은 운영체제 명령어를 사용하지 않는 것이다
꼭 필요 시 외부로부터 넘겨온 파라메터가 실행되지 않도록 철저히 점검해야 한다
참고솔루션) 봄즈 봄보라
'봄보라' 카테고리의 다른 글
HTTPS 프로토콜과 보안 (0) | 2021.09.05 |
---|---|
대형 프로젝트에서 kanban 적용 시 참고할 점 (0) | 2021.08.29 |
웹 해킹의 공격 단계 (0) | 2021.08.15 |
소프트웨어 방법론 칸반의 목표 (0) | 2021.08.08 |
OWASP (Open Web Application Security Project) (0) | 2021.08.01 |