모든 파일 취약점 수리 방법을 삭제 워드 프레스

, 입술 팀은 워드 프레스 4.9.6을 공개하고 4.9.6 취약점에 의해 제거 취약점, 사용자가 사이트의 모든 파일을 삭제할 수 있습니다 첨부 파일 권한을 업로드 기록하는 버전 이전에 존재하는 모든 파일은 취약점은 버전 4.9.7에서 해결 당신이 결함을 해결하기 위해 최신 버전으로 업데이트 할 수 있습니다 워드 프레스의 다음과 같은 사용자 4.9.7 버전을 사용하는 경우,하지 않는 다음과 같은 방법으로 해결할 수 있습니다 웹 마스터를 업데이트합니다.

이론과 위험 취약점

워드 프레스는 파일 때문에 wp-includes/post.php기능에서 wp_delete_attachement()직접 실행 취약점으로 이어질 삭제 된 파일의 매개 변수를받는 안전한 취급은하지 않습니다.

1
4
5
6
(7)
8
9
(10)
(11)
(12)
(13)
(14)
(15)
함수 wp_delete_attachment ($ post_id를, $ force_delete = 거짓) {
    ...
    $ 메타 = wp_get_attachment_metadata의 ($ post_id를);
    ...
    경우에하는 것은 {(! ($ 메타 [ '엄지 손가락']) 비어 있음)
        // 다른 첨부 파일 사용이 경우 엄지 손가락을 삭제하지 마십시오.
        (! $ wpdb-> get_row ($ wpdb->하는 경우 (제조 "$ wpdb-> postmeta WHERE meta_key = '_wp_attachment_metadata'FROM SELECT meta_id과 같은 meta_value % S AND post_id를 <> % D ','% '. $ wpdb- > esc_like ($ 메타 [ '엄지'). '%'$ post_id를))) {
            $ thumbfile 않는 str_replace = (기본 이름 ($ 파일) 메타 $ [ '엄지', $ 파일);
            / **이 필터에서 설명 WP-포함 / functions.php * /
            $ thumbfile apply_filters = ( 'wp_delete_file'$ thumbfile);
            @ 링크 해제 (path_join ($ uploadpath [ 'BASEDIR'], $ thumbfile));
        }
    }
    ...
}

코드에서 볼 wp_delete_attachement()unlink()입력 $meta['thumb'], 직접 호출하는 모든 필터링 처리를 실시하지.

이 코드의 목적은 이미지를 삭제하는 동안 썸네일 이미지를 삭제하는 것입니다. 에서 wp_delete_attachement()함수 $meta['thumb']코드가 아닌 경우 사용자 정의 필드에있는 문서를 나타내는 화상과 같은 데이터베이스로부터, 그리고 저장 값 검사하지만, $meta['thumb']콘텐츠 검사 및 필터링, 임의의 파일 삭제 동작을 실행하기 위해이 기능의 사용을 초래할 것이다.

1
4
5
6
(7)
8
9
(10)
(11)
(12)
...
스위치 ($ 조치) {
...
    경우 'editattachment'
        check_admin_referer ( '갱신 post_'$ post_id를.)
        ...
        // 업데이트 썸네일 파일 이름
        $ newmeta = wp_get_attachment_metadata의 ($ post_id를, TRUE);
        $ newmeta [ '엄지'] = $ _POST [ '엄지'];
 
        wp_update_attachment_metadata ($ post_id를, $ newmeta);
...

/wp-admin/post.php조각 뒤, 위, 볼 수있는 방법을 데이터베이스에 저장된 파일 이름에 속하는 썸네일 액세서리 첨부. 사용자로부터 전송 값에서 지정 $_POST['thumb']데이터베이스에 저장할 수를 wp_update_attachment_metadata()이 진정 편집의 부속서에서 썸네일 있는지 확인하기 위해 어떤 안전 조치 간의 기능을 실행합니다.

그리고 $_POST['thumb']어떤 파일 경로가 될 수 있으며,이 값은 상대 경로 워드 프레스 업로드 디렉토리, 첨부 파일이 삭제 될 때, 파일이 삭제됩니다에 저장할 수 있습니다.

수리 방법

방법 1 : 버전 4.9.7 이상으로 워드 프레스 업그레이드.

두 번째 방법은 : 현재 사용중인 테마의 functions.php 파일에 다음 코드를 넣어 :

1
4
5
6
(7)
8
add_filter ( 'wp_update_attachment_metadata', 'rips_unlink_tempfix');
함수 rips_unlink_tempfix ($ 데이터) {
    만약 (는 isset ($ 데이터 [ '엄지'])) {
        $ 데이터 [ '엄지'] = 기본 이름 ($ 데이터 [ '엄지']);
    }
 
    $ 데이터를 반환;
}

추천

출처www.cnblogs.com/qqsvip/p/11853478.html