반응형
SMALL

이번 포스팅은 XML, XPath 인젝션에 대해 포스팅해보려고 한다. 사실 이 공격방식도 다른 공격들을 다뤘지만 많이 유사하고 크게 어렵지 않는 부분이다.


1. XML/XPath 란?


- XML구조에 악의적인 쿼리, 코드를 삽입해서 정보를 탈취하는 공격

- XML은 데이터를 트리구조로 표현한 것이 특징이며 XPath는 일종의 쿼리라고 생각하면 쉽다. 더 쉽게 설명하면 XML    은 데이터베이스이고 XPath는 SQL이라고 생각하면 훨씬 간단하고 편하다.


2. XPath 명령어


 <출저: 보안프로젝트>


XPath 명령어도 다양하게 있으므로 한번 참고용으로 보면 도움이 된다.




* 공격실습


1) XML/XPath 인젝션(Login Form) 





이 공격방식도 기존 공격방식이랑 비슷하다. 화면에 나온 명령어를 입력하고 로그인 버튼을 누르면 아래와 같이 화면이 잘 출력됨을 볼 수 있고 참일 경우에만 저런 화면이 나온다. 




만약 거짓임이 판별되면 화면처럼 빨간색 글자가 나오게 되면서 거짓임을 표시해준다.




2) 공격쿼리 실습



몇가지 공격쿼리가 있는데 neo' and count(../count::*) = 6 or 'a'='b 라고 입력해주면 저런식의 화면이 나오게 된다. ../은 상위디렉토리인 heros로 가서 heros에 있는 내용을 출력하겠다는 의미인데 그 값이 6인지 확인해보는 쿼리이다.





이번에는 neo' and string-length(name(parent::*)) = 6 or 'a'='b  라는 쿼리를 입력해주고 실행시켜도 저렇게 화면이 참으로 나온다. 길이를 알아보기 위한 쿼리인데 parent안에 있는 이름을 알아보려는 쿼리이다. 이 공격방식도 앞에서 설명한 Blind SQL인젝션 공격이랑 많이 흡사하다.




이번에는 neo' and substring(name(parent::*),1,1) = 'h' 'a'='b라는 쿼리를 입력해주고 실행시키면 참이 나오는데 substring에는 지난번에도 포스팅했지만 문자열을 알기 위한 함수이다. h라는 것이 첫번째 글자에 있기때문에 참이 나오는 것이다. 



3) XML/XPath(Search)실습


이번것도 별다른 건 없다. URL에 쿼리를 삽입하는 방식은 Blind 공격과 많이 흡사하다. 비박스  xmli_2.php파일로 들어가면 xpath 전달 경로를 볼 수 있다. 여기에 코드를 삽입해준다.






action이라는 부분에 공격할 쿼리인 ')] | //* | a[('를 삽입시켜주면 다음과 같은 화면이 조회된다. 그렇게 되면 heros에 있는 xml파일들이 다 조회가 가능하게 된다. 이런식으로 SQL 인젝션을 통해 xml파일 해킹 또한 가능하게 된다. 아래 사진은 heros.xml파일 내용이다. 이 부분들이 출력되는 것이다.




이렇게 XML/XPath 인젝션에 대해서도 포스팅 해봤지만 기존에 포스팅했던 공격들과 매우 흡사한 형태를 띠고 있다. XML변조 공격도 많이 이루어지고 있으니 항상 공부하고 대비하는 방법을 생각해보는 것이 좋을 것 같다.

반응형
LIST

'웹해킹 > Bee-box' 카테고리의 다른 글

세션결함  (0) 2017.12.29
인증결함  (0) 2017.12.29
Blind SQL 인젝션  (0) 2017.12.28
메타스플로잇(기초)  (0) 2017.12.28
sqlmap 활용법  (0) 2017.12.28
블로그 이미지

만년필석사

,