기본 콘텐츠로 건너뛰기

bWAPP SQL Injection [ GET/Search ]



bWAPP SQL Injection [ GET/Search ] Current : low




Search 를 클릭하여 패킷을 잡고 Request 값을 분석합니다.


위와 같이 title 변수를 사용하여 값을 전달합니다.


위 주소를 보면 GET 방식으로 title , Search 변수를 노출시킵니다.

따라서 , URL 부분을 통해 SQL 을 시도하는 방법과 텍스트 폼에 SQL 구문을 넣어 시도할수있습니다.



위와 같이 텍스트 폼에 ' 를 넣어 SQL 구문 오류가 발생하는지 취약점을 진단합니다.

이번엔 ' or 1=1# Login SQL 구문을 넣어 아래와 같이 취약점을 진단합니다.



진단 결과 위와 같이 여러 사용자의 이름 및 정보들이 출력됩니다.



이번엔 UNION구문을 통해 SQL 취약점을 진단합니다. 

'UNION ALL SELECT 1,2,3,4,5,6,7# 를 통해 칼럼길이 를 적절히 맞추어 UNION SQL 을 시도합니다.



진단 결과 여러 사용자의 정보들이 출력됩니다.


이번엔 UNION SQL 구문의 명령어인 @@version 을 통해 버전 정보를 확인합니다. 


확인 결과 아래와 같이 Ubuntu 버전이 출력된 것을 확인이 가능합니다.


이번엔 table_name SQL 구문을 통해 테이블명을 아래와 같이 뽑아냅니다.





테이블명을 뽑아낸 결과 위와 같이 user 테이블의 사용자가 확인이 가능합니다.

 

이를 통해 위에서 뽑아낸 user 테이블 명에 대해 where 구문을 추가하여 users 사용자에 대한 추가 정보를 아래와 같이 추가적으로 획득합니다. 



이번엔 , column_name 을 통해 여러 사용자의 정보들을 획득합니다.  





위와 같이 column 구문을 통해  id , login , password , email , secret 등 다양한 정보를 추가적으로 획득이 가능합니다.

아래와 같이 concat 을 통해 문자열을 합쳐 여러 사용자에 대해 정보를 조회합니다.




이번엔 concat 을 사용하지 않고 여러 사용자의 정보를 조회합니다.

조회 결과 아래와 같이  사용자의 password , secret 등 각종 정보와 Hash 값으로 추측되는 정보까지 획득이 가능합니다. 



취득한 위 Hash 값은 John the Ripper 툴 및 SHA256 패스워드 복호화 툴을 통해 Hash 함수 해독이 가능합니다.



댓글

이 블로그의 인기 게시물

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 Response: Location: h

Juice Shop XSS [ Dom based XSS ]

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

Juice Shop Broken Access Control [ Basket Access Tier 1 ]

Juice Shop Broken Access Control [ Basket Access Tier 1 ] 이 취약점은 내 장바구니가 아닌 타인의 장바구니를 아무 인증결합 없이 무단으로 조회가 가능한지에 대한 취약점 진단입니다. 장바구니 버툰을 누르는 동시에 패킷을 잡고 클라이언트측 관점에서 다음과 같이 Reqeust 값을 분석합니다. 위와 같이  GET /rest/basket/53   으로 53번이라는 값을 가지고 있습니다. 이는 현재 내 장바구니의 고유 번호인걸로 추측이됩니다. 만약 이 숫자를 내 장바구니의 고유번호인 53이 아닌 , 2 , 3, 13 , 51 이런식으로 다른사람의 장바구니값을 넣게 되면 다른 사람의 장바구니를 무단으로 조회가 가능합니다. 위와같이  GET /rest/basket/53  ->  GET /rest/basket/1   으로 변경 후 , 마찬가지로 GET /rest/basket/3  , GET /rest/basket/7  등을 입력하여 무단으로 다른사람의 장바구니를 조회할수있는지 취약점을 진단합니다. 그 후 , 내 장바구니를 클릭하여 확인 시 , 아래와 같이 내 장바구니가 아닌 다른 사람의 장바구니를 무단으로 접근이 가능하여 접근관련 인증 처리 , 인증결합 취약점에 취약합니다.