CVE-2017-5487 취약점에서는 위험도가 별로 높지 않아 별다른 중요성을 못느꼈는데 이번에 짚고 넘어갈 취약점은 꽤 Critical하다.
- 영향버전: 워드프레스 4.7.0 / 4.7.1
- 4.7.0 버전부터 적용된 REST API의 취약점
- 무슨 취약점인가?
- 워드프레스 REST API의 취약점으로 권한없는 사용자가 게시글을 열람, 수정, 삭제, 생성할 수 있는 취약점이다
- 이 포스팅에서는 권한없는 사용자가 게시글을 수정하는 실습을 진행한다.
- 익스플로잇 과정
1) 도메인/ wordpress/readme.html 에 접속하여 워드프레스의 버전정보를 획득한다.

2) REST API 를 통해(도메인/wordpress/wp-json/wp/v2/posts)포스팅된 게시글의 상세정보를 확인한다.
3) 도메인/wordpress/wp-json/wp/v2/posts 뒤에 게시글의 번호를 넣으면 특정 게시글에 해당하는 내용만 출력된다.
4) 이제 본격적으로 익스플로잇을 하는 과정이다.
도메인/wordpress/wp-json/wp/v2/posts/(포스팅넘버) 뒤에 ?id=(포스팅넘버)(아무알파벳) 조합으로 패킷을 보낸다.
5) 프록시 툴을 이용하여 아래와 같이 패킷을 수정하여 전송한다.
- GET → POST
- Content-Type: application/json 추가
- {
"title":"원하는 제목",
"content":"원하는 내용"
}
6) 응답값에 200 OK 뜨는 것 확인 후, 실제 웹페이지에 접속하여 변경되었는지 확인
- 대응책
- Wordpress 4.7.2 이상 버전으로 업그레이드
- 업그레이드 시 Content Injection을 시도하면 마지막 과정에서 200OK가 뜨지 않고 "Bad Request" 등의 에러 메시지가 발생한다.