본문 바로가기
작업/Webhacking.kr

webhacking.kr old-38 이해하기

728x90

 

 

 

old-38 페이지는 "LOG INJECTION"이라는 이름을 가지고 텍스트 박스와 클릭 버튼이 있습니다.


자연스럽게 admin을 당당히 입력해 보았습니다.

 

 

 

admin이 아니라는 말이 등장했습니다. ㅠㅠ; 
페이지 소스 코드를 확인해 보았습니다.

 

 

 

<form method="post" action="index.php">
<input type="text" name="id" size="20">
<input type="submit" value="Login">
</form>

 

form 태그를 확인해 보면 post 입력 방식을 사용하고 있음을 알 수 있습니다.
php에서 파라미터 전달 방식으로 GET 입력과 POST 입력 방식이 있습니다.


GET 입력 방식은 ?를 시작으로 URL에 값이 직접 나타나는 형태를 가집니다.
이와 다르게 POST 입력은 페이지 자체에 파라미터가 전달되는 형태입니다.


위의 문장에서 post 방식에 의해 index.php 안에 파라미터 값도 같이 전달되는 것입니다.
그래서 파라미터 값이 URL 상에서 보이지 않습니다. 

 

<!-- <a href=admin.php>admin page</a> -->

 

 

<!-- --> 안에 들어있는 문장은 주석 처리되어 실제로 실행되지는 않는 문장입니다.

 


admin.php 페이지가 존재하는 것을 알 수 있습니다. URL에 직접 입력해서 들어가 보았습니다.

 

 

 

"log viewer"라는 이름과 함께 텍스트가 줄줄이 적혀있습니다.

 


텍스트는 사용 중인 ip값(검은색 띠)과 텍스트 상자에 입력한 값이 적혀있습니다.
간단한 필터링 우회 코드로는 가볍게 해결할 수 없다는 것을 알 수 있었습니다.


문제 해결

admin이 필터링될 수 있는 경우의 수를 적어 보았습니다.


1. 직접 admin을 입력하면 = you are not admin


2. admin에 필터링 우회 코드를 넣으면 = 우회 코드도 문자열 취급


3. URL에 직접 admin 값을 입력 = post 입력 방식에 의해 해결 불가




결국 페이지 소스 코드를 변경해서 해결하는 것으로 했습니다.
어떤 경우여야 admin이 필터링에 걸리지 않을지 생각했습니다.

 

 

 

admin.php의 페이지 소스 코드를 보면 값들이 적혀 있으며
<br>을 통해 줄 띄움이 발생하는 것을 알 수 있습니다.



만약 첫 입력 조건으로 admin이 아니라면 ip주소와 함께 출력하고 줄 띄움,
admin이라면 예외처리 출력이라고 가정한다면,

 


첫 줄에 admin이 아닌 값을 입력하고 줄을 띄운 다음
admin값을 입력하면 어떻게 되는지 알아보았습니다.


첫 줄의 입력에만 필터링이 된다고 가정하는 것입니다.



이번 페이지 소스 코드는 전적으로 HTML입니다. 
<textarea> 태그는 여러 줄을 입력할 수 있는 텍스트 상자를 제공합니다.


페이지 소스 코드에서 input 태그를 변경 후 작업을 해보았습니다.

 

textarea 태그 활용

 

 

 

하지만 결과는 줄 띄움이 발생하고 그대로 admin이 출력된 것이었습니다.
admin 값은 그대로 전달이 되었음을 알 수 있었습니다.

 


첫 줄에서 필터링이 일어나며 그다음부터는 필터링에서 우회된다는 의미입니다.


성공을 위해서는 ip값도 필요한 것 같아 제가 사용하는 ip값을 추가하여 입력을 진행하였습니다.


ip 주소가 192.168.0.3이라고 한다면 두 번째 줄 입력을 192.168.0.3:admin으로 하는 것입니다.

 

 

 

 

입력 후에 아무런 반응이 없어서 admin.php를 들어가 보았는데 성공!!!!

 

 

-끝-

 

 

728x90

'작업 > Webhacking.kr' 카테고리의 다른 글

webhacking.kr old-26 이해하기  (0) 2020.09.06
webhacking.kr old-27 이해하기  (0) 2020.09.05
webhacking.kr old-25 이해하기  (0) 2020.09.03
webhacking.kr old-19 이해하기  (0) 2020.09.02
webhacking.kr old-6 이해하기  (0) 2020.09.02