본문 바로가기

SISS/Webhacking.kr

old-08(350)

크롬으로 접속했을 때
firefox로 접속했을 때

getenv(): 환경변수를 가져오는 함수이다. 여기서는 "HTTP_USER_AGENT"라는 환경변수를 가져온다. $SERER['HTTP_USER_AGENT']는 접속자의 접속 브라우저를 의미한다.

trim(): 문자열의 맨 앞과 맨 뒤의 여백을 제거한다.

$_SERVER['REMOTE_ADDR']: 웹서버에 접촉한 접속자의 IP를 의미한다.

접속자의 IP를 $ip에 저장한다.

$agent에 from이 들어가 있으면 Access Denied를 출력하고, $agent를 출력한다.

 

count(): sql에서 테이블에 존재하는 데이터의 개수를 가져온다. 이때, NULL인 것은 제외한다.

chall8이라는 table에서 id의 개수를 구해 $count_ck에 저장한다. 만약 그 개수가 70개 이상이면 chall8에 저장된 모든 데이터가 삭제된다.

 

agent가 현재 접속한 브라우저인 id를 모두 골라 배열로 $ck에 저장한다.

$ck가 존재하면 $ck[0]을 출력하고, 만약 이것이 "admin"이라면 문제는 풀린다.

$ck가 존재하지 않다면 현재의 접속 브라우저, 접속한 pc의 ip주소와 'guest'라는 새로운 데이터 행을 삽입한다.

그 뒤, $count_ck를 출력한다.

 

화면에 접속하자마자 hi guest가 뜬 것은 아마도, id의 개수가 70개보다 적고, 내가 접속한 브라우저를 agent값으로 가진 행의 id가 있다는 뜻이다. 그리고 접속한 브라우저를 agent 값으로 가진 행의 id는 guest이다.

 

firefox로 접속했을 때 done!(3/70)이라는 것은 firefox를 agent의 값으로 갖는 id가 없었다는 의미이다. 이로써  table에 데이터가 원래 3개 있었다는 것을 알 수 있다.

 

테이블을 완전히 비웠을 때, $agent의 값과 $ip의 값을 통해 SQL Injection을 시도할 수 있다.

 

firefox로 burp suite를 사용하는 것이 처음이어서 어떻게 하는지 몰라 조금 시간을 지체했는데,

여기서 Open browser를 눌러서 열리는 새로운 창으로 들어가 intercept is on으로 상태를 바꾸고 원하는 사이트 주소를 입력하면 그 주소에 대해 repeater를 사용할 수 있다.

request에서 볼수 있는 것들이다. 6번째 줄에 User-Agent가 있는 것을 볼 수 있다. 맨 끝에는 (웹브라우저이름)숫자들 이렇게 있는데, 여기서 맨 끝을 조금씩 변형해가면서 테이블에 새로 추가할 수 있도록 한다.

많은 고생을 통해 여기까지 왔다. repeater를 일일이 손으로 입력하고 클릭하게 만들지는 않았을 텐데... 뭔가 더 편하게 하는 방법이 있을 것이다.

데이터를 70개까지 꽉 채웠다.

Safari/537.36','아이피주소','admin')#

이렇게 입력하면, 새로운 브라우저라고 인식하게 되어 바로 이 가짜 브라우저 명을 쿼리문에 넣는다. Safari/537.36이 브라우저로,  입력해준 아이피 주소가 ip로, guest 대신  admin으로 저장된다. #을 넣은 덕에 뒤에 guest 같은 것들은 전부 무시된다.

아이피 주소를 10.10.10.10으로 하고 다시 접속을 하는데(Fire fox 브라우저로) hi guest가 떠서 ip를 알아봐주는 사이트로 들어가 내 아이피 주소를 확인해서 넣어보기도 하고,  터미널에서 ip 주소를 알아내는 명령어를 써서 알아낸 것을 넣어보기도 했다.  그 이후에 뭐가 잘못됐는지 알고 싶어서 버프 스위트를 통해 브라우저를 열어 문제에 접속했더니 갑자기 문제가 풀렸다. 아마 버프 스위트로는 chromium-browser로 접속했고 확인한 것은 파이어 폭스를 이용해서 그런 것 같다.

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

old-03(350)  (0) 2020.11.22
old-53(350)  (0) 2020.11.07
old-49(300)  (0) 2020.10.31
old-48(350)  (0) 2020.10.04
old-11(300)  (0) 2020.09.26