-
Command injectionSecurity/Web보안 2020. 8. 1. 15:35
-웹 애플리케이션에서 시스템 명령어를 실행할 수 있는 함수를 제공하고,
사용자 입력값에 필터링이 제대로 이루어지지않을 경우
Command injection에 취약한 함수
java - system.*
perl - open(), sysopen(), system(), glob()
PHP - exec(), system(), passthru(), popen(), eval(), include(), preg_replace(), rquire()
공격 예제
ex)
127.0.0.1;ls
127.0.0.1;cat /etc/passwd
세미클론 대신 파이프(|)나 &사용가능
ex)
127.0.0.1| ls
127.0.0.1& ls
대응 방법
사용자 입력값에 대해 적절히 필터링을 하여 차단한다.
만약 os명령어를 불가피하게 사용해야한다면, 화이트리스트를 선정해 해당 명령어만 실행하도록 설정한다.
ip주소의 경우, 값이 확실히 ip주소가 맞는지 체크한다.(정수.정수.정수.정수)
'Security > Web보안' 카테고리의 다른 글
Webhacking.kr (0) 2021.01.09 Loose comparison, Magic Hash (0) 2020.08.04 Local File Inclusion (0) 2020.08.02 Directory indexing (0) 2020.08.01