2019년 11월 13일 : 임의의 코드 실행, 기반 학습, 메모

/ tmp를 / 또는 창과 같은 phpstudy로 / var / lib / PHP5 / 위치를 사용하는 경우, phpstudy \ \ TMP \에서 TMP PHPTutorial, 새로운 버전의 phpstudy_pro \ 확장 \ TMP \ TMP에있는 파일의 일반적인 위치의 리눅스 세션

phpMyAdmin에 임의의 파일은 CVE-2014-8959, 허점을 포함
취약점 4.1.1-4.1.14.7 4.2.1-4.2.12 범위 4.0.1-4.0.10.6
http://127.0.0.1/phpmyadmin4/gis_data_editor.php?token= 002b368c387963db9fbd71e3ef38310b 및 gis_data [gis_type = / % 00 .. / ... / ... / 2.JPG 다음 토큰에 로그인이 얻어진다 gis_data [gis_type] = ... / ... / ... / 2.JPG이 이미 업로드 성공적인 사진 말 .. / 루트 디렉토리로 이동

파일이 취약점 방어가 들어
다시 추가, 포함 할 수있는 특정 디렉토리에 대한 1 수정 PHP는 프로파일 설정 값의 open_basedir을 /, 예를 들어,의 open_basedir = / var에 / WWW / HTML
2 가까이가 포함 된 원격 파일을 방지하기 위해 allow_url_fopen을하고 allow_url_include 가능
3, 파일은 제한을 포함 할 수있는 디렉토리를 단일 밝은 백색을 사용할 수 있고, 또는의 open_basedir 같은 집합을 포함 할 수있다
. 4, 엄격한 검사 파라미터 값은 같은 기호 디렉토리를 이동할 수 없다 ../

명령 실행 취약점이, 매일 네트워크 액세스, 우리는 종종 기능과 같은 시스템 명령을 수행 할 수있다 웹 사이트의 일부를 볼 : 일부 사이트는 핑 기능을 제공, 우리는 IP 주소를 입력 할 수 있습니다, 그것은 우리가 핑에 시도하는 데 도움이 될 것입니다 IP의 대상의 주소, 우리는 결과를 볼 수 있습니다. 사용자가 사이트의 의도를 따르지 않는 경우에,주의 깊게 건설 입력 지침을 시도 자체가 기능적 로직을 생성 할 수있는 사이트는 악의적 인 명령을 실행할 수 있도록 대상 사이트로 이어지는 반전.

명령 실행 취약점이없는
웹 층 명령 코드 간부 ( "WHOAMI");
타사 성분 명령 실행 취약점, 워드 ImageMagick를 조립 이미지를 처리하기위한, JAVA 명령 주입 취약점 (struts2 / ElasticsearchGroovy 등), vBulletin에 5 퀄컴의 .x를 버전은 원격 코드 실행 죽일
시스템 레벨 명령 실행 취약점, MS08-067, bash는 깨진 쉘 취약점을

두 가지 이유에 대해 생성하는 명령 주입 취약점은 명령과 콘텐츠 입력 사용자 입력을 제어 할 수있는 사용자는 실행될

공통 기능을 실행
``역 출력 아포스트로피 쉘 및 결과를 반환합니다.
시스템 () 반환 마지막 쉘 결과의 출력 라인.
경유 () 호출 유일한 명령은 명령 출력의 연산 결과 그것을 직접 표준 출력 장치로서. 같은 점은 : 당신이 명령 실행 상태 코드를 얻을 수
shell_exec () 실행을 통해 출력 쉘 환경, 그래서으로 돌아 가기로 전체 문자열
간부 인 ()는 출력하지 결과, 마지막 행 쉘 결과에 복귀, 모든 결과는 저장할 수 있습니다 않습니다 배열 내부를 반환합니다.
는 popen ()
proc_open ()
pcntl_exec ()

명령 권한은 명령 주입 취약점 권한은 웹 미들웨어에 대해 실행하는 해. 웹 응용 프로그램이 웹 미들웨어에서 실행하기 때문에, 웹 응용 프로그램을 "상속"실행 웹 미들웨어에 대한 권한 때문에. 웹 응용 프로그램 실행 명령 주입 취약점은 관리자 권한으로 실행하는 웹 미들웨어에있는 경우, 다음 명령을 실행하기 위해 해당 웹 관리자 권한을 통해 명령을 실행합니다.

여러 명령 구문에서 창
명령 1 주문 2는 관계없이 명령 (1)가 성공적으로 실행 여부의 명령 1 실행 2를 실행
명령 1 && 명령이 명령 1을 실행 만 명령 (1)가 성공적으로 실행 한 다음 명령을 실행 2
명령 커맨드 1 || 2,1이며 1 명령은 명령이 명령을 실행하고 실행하는 데 실패한
명령 1 | 2 명령을 | 파이프 문자 명령 1 (2), 오류가 있으면 1 개 명령, 상기 명령에 전달 된 명령의 실행 결과 도 2는 동일하게 수행 할

다수의 명령 구문 아래 LINIX
커맨드 1, 커맨드 2, 명령 1을 실행 한 다음에 관계없이 명령이 1이 성공적으로 실행 여부, 명령이 실행
명령 1 && 명령 2, 순서 1로서 명령 1 실행 2를 실행하는 실행 우리는이 명령을 실행하기 위해 올 때 성공적인
명령 실행에 명령 1, 2를, 명령 1 ||이 명령을 실행 만 (1) 명령은 명령 2 실행하면 실패
2 명령, | | 파이프 라인, 명령 실행 결과 1 명령 1 상기 송신 명령 (2)

코드 실행
응용 프로그램이 일부 문자를 호출 평가 (NO 7 이후의 PHP 평가)로, 사용자가 코드 주입 취약점의 원인이됩니다 문자열을 제어 할 수 있는지 여부를 고려하지 않았을 때 함수의 코드로 변환 할 수 있습니다

$ 데이터 = $는 _는 GET [ '데이터']
평가 후면 ( "\ $ RET = $ 데이터;")에 직접 기능 수행
평가 ( "\ $ RET =하여 strtolower ("$ 데이터 '); ")가 폐쇄 사용될 수있다 실행 모드에게 평가 우회 ( "\ $하여 strtolower RET = ()을 '1.'상기은 phpinfo (); // ');")
평가 후면 ( "\ $하여 strtolower RET = ("$ 데이터 "참조);") 사용될 수있다 바이 패스 폐쇄 방법은 평가 실행 ( "\ $ RET =하여 strtolower를 ("1 ") 상기은 phpinfo (); // '.)");
urlY 구문, 평가 ( "\ $ RET = 활용 하여 strtolower (\"$ 데이터 \ ");")} {$이 바이 패스 모드로 이용 될 수 있고, $ {은 phpinfo ()} 평가 ( "\ $ RET =하여 strtolower (\"$ {은 phpinfo ()} ")");

추천

출처www.cnblogs.com/sym945/p/11851117.html