'Wargame/webhacking.kr'에 해당되는 글 55건


webhacking.kr 44번 문제다.

점수는 500point.

들어가보면 다음과 같이 입력값을 줄 수 있다. 

아무값이나 주고 넣어봤는데 일단 글자수제한이 걸려있다. admin이라 주고 넣어보니 다음과 같이 hello 다음에 내가 준 값이 나온다.

처음엔 sql injection 문젠가 싶어서 이것저것 해봤는데 답이 안나와서 code injection쪽으로 생각을 해봤다. echo hello 내가준값 식으로해서 출력이 되는 것 같다.

그렇다면 ;ls라고 주면 파일 리스트가 나올 것 같다.

넣어보니 아무것도 안나온다. 필터링 되고 있는 것 같다. 그렇다면 ;와 ls를 우회해야 할 것 같다.
echo asdfg;ls 방식에서 ;는 &로 대신 입력해도 두개의 명령어가 다 실행되기 때문에 필터링이 가능할 것 같아서 &만 따로 넣어봤더니 정상적으로 출력된다. 문제는 ls를 우회해야 하는데 이부분은 전혀 감이 안와서 결국 검색을 해봤다 ㅠ
보니까 리눅스에서 ls 같은 명령어를 칠때 명령어 문자 하나하나 사이에 싱글쿼터를 줘서 l's' 식으로 넣어줘도 정상적으로 동작한단다. ㅡㅡ 신기하네 이건 처음 알았다.

그래서 다음과 같이 &l's'로 한번 넣어봤다.

?? 우회는 됬는데 생각처럼 ls가 실행이 안된다. 흠..

$l's'가 그대로 출력된걸보니 echo문이 저걸 출력한것 같다. 그렇다면 처음에 echo 내가준값 형식이라고 생각해서 echo $l's'면 명령어가 둘다 실행될 거라 생각했는데 echo '내가준값' 형식이었다면 echo '$'ls''가 되서 $'ls'가 문자열로 출력된 것 같다. 그렇다면 '$l's'라고 주면 echo ''$l's'가 되서 정상적으로 echo와 ls가 실행될 것 같다.
넣어보니 다음과 같이 파일목록이 나온다.

들어가서 확인해보니 바로 클리어된다.

리눅스에 저런기능이 있는지 새로알게됬다. 성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 46번  (0) 2018.01.17
webhacking.kr 45번  (0) 2018.01.15
webhacking.kr 43번  (0) 2018.01.15
webhacking.kr 42번  (0) 2018.01.15
webhacking.kr 41번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 43번 문제다.

점수는 200point.

들어가보면 웹쉘 업로드 하란다. 기본적인 파일 업로드 취약점 문제인 것 같다.

Content-Type만 이미지파일 형식으로 바꿔서 등록해봤다.

?바로 성공했다. 기본적인 필터링도 안되있는 것 같다.

1분도안되서 풀었다. 여기 문제중에 제일 빨리 푼 것 같다.


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 45번  (0) 2018.01.15
webhacking.kr 44번  (0) 2018.01.15
webhacking.kr 42번  (0) 2018.01.15
webhacking.kr 41번  (0) 2018.01.15
webhacking.kr 40번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 42번 문제다.

점수는 200point.

들어가보면 다운로드 받을 수 있는 파일이 있다. 

test.txt는 별거 없고 test.zip을 받으면 권한 거부라고 뜬다.

소스를 확인해보니 test.txt 다운받을때 base64로 인코딩된 값이 넘어가는게 보인다.


인코딩된값을 디코딩해보면 test.txt다. 그러면 test.zip을 base64로 인코딩해서 보내보면 다운될 것 같다.

디코딩한 값 넣어보니 다운이 됬다. 압축풀려하니까 비밀번호가 걸려있따.

소스에서 비번이 숫자로만 되어있다 했으니 칼리로 숫자로만 된 dictionary 파일 만들어서
AZPR 툴로 크랙해 봤다. 다음과 같이 비밀번호가 나온다.

 

비밀번호 입력해주고 압축푼다음 파일열어보니 다음과같이 경로가나온다.

들어가보면 키값이 나온다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 44번  (0) 2018.01.15
webhacking.kr 43번  (0) 2018.01.15
webhacking.kr 41번  (0) 2018.01.15
webhacking.kr 40번  (0) 2018.01.15
webhacking.kr 39번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 41번 문제다.

점수는 250 point.

들어가보면 다음과 같이 파일 업로드 하는 화면이 나온다.

소스부터 확인해보니 index.phps가 있다. 들어가봤다.

파일 이름이 이것저것 필터링 된다. 필터링만 우회하면 내가 입력한 파일에 플래그값을 써주니 들어가보기만 하면 될 것 같다. 그러면 hidden_dir을 알아내야 하는데 경로를 모르니 함수에서 에러를 내면 뭔가 경로를 출력해 줄 것 같다. $fn이 없는 값이 되면 copy에서 복사할 대상파일이 없으니 에러가 날 것 같다.
첨에 아무것도 안넣고 보냈더니 no값이 나온다. 뭔가하고생각해보니 eregi에서 $fn값이 없어서 에러가 뜬 것 같았다. str_replace에서 <, >가 필터링되서 $fn이 null값이 되도록 만들어 보면 될 것 같다.

나오네..?

제대로 값주고 넘긴 다음 지정경로로 들어가봤다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 43번  (0) 2018.01.15
webhacking.kr 42번  (0) 2018.01.15
webhacking.kr 40번  (0) 2018.01.15
webhacking.kr 39번  (0) 2018.01.15
webhacking.kr 38번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 40번 문제다.

그동안 프로젝트 한다고 엄청나게 오랜만에 워게임 문제풀이..

시작하자마자 500점 짜리라 벌써부터 고생할게 눈에 보인다.

들어가면 다음과 같이 기본적으로 값이 셋팅되있다.

그대로 로그인해보니 다음과 같이 성공했다고 뜬다.

no값을 2로 바꿔서 넣어보니 실패했다고 뜬다.

1 or 1#으로 줘봤더니 다음과 같이 뭔가 필터링되는 것 같다.

1||1#으로 줘보니 성공 메시지가 뜬다.

흠.. no 1이 guest에 해당하는 값인 것 같다. 0아니면 2가 admin no일 것 같다.

-1||no=2#주니 다음과 같이 어드민 패스워드 입력창이 나온다.


대충 사이즈는 다 나왔다. 키값구하고 비교돌리면 될 것 같다.

스크립트를 짜고 돌려봤다.


 

오랜만에 웹 워게임 풀었더니 엄청 삽질하고 풀었다. 그래도 간만에 하니까 재밌네


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 42번  (0) 2018.01.15
webhacking.kr 41번  (0) 2018.01.15
webhacking.kr 39번  (0) 2018.01.15
webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 39번 문제다.

점수는 100point.

들어가보면 입력창이 하나 있다.

소스를 보니 id값을 필터링 하고 있다. \\는 별 의미가 없을 것 같고
'가 문제인데 쿼리문보면 '가 앞에 하나밖에없기 때문에 admin'와 같은 형식으로 주게될 경우 '가 2개가 되어서 admin''가 된다.
그다음이 0~15번째까지 끊어버리는데 이걸 활용해 치환되는 ''가 15,16에 위치하면 '가 하나만 남게 만들도록 하면 될 것 같다.

admin         '' 로 입력해줘봤다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 41번  (0) 2018.01.15
webhacking.kr 40번  (0) 2018.01.15
webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 38번 문제다.

점수는 100point.

흠 injection 문제인 것 같다.

이것저것 넣어봤는데 별 반응이 없다.
Admin 버튼을 눌러보니 다음과 같이 IP:입력값 형식으로 로그가 남겨져 있다.

흠 admin을 입력해 봤다.

로그인이 실패한다.

뭔가 저 로그값이 연관이 있을 것 같다.

내가입력했을때 IP:값 형식으로 들어갔으니 IP:admin으로 입력해 봤다.

 

성공!

sql injection 문제라기보단 그냥 눈치껏 푸는 센스문제인것 같다.


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 40번  (0) 2018.01.15
webhacking.kr 39번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
webhacking.kr 35번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 37번 문제다. 

점수는 250point.

다음과 같이 파일 업로드가 가능하다. 일단 소스부터 확인해보자.

index.phps가 있다. 들어가보자.

소스가 살짝 양이 좀 있다.

먼저 흐름을 보면 time()함수를 통해 시간값을 저장해 이 값을 가지고 tmp/tmp-시간값 형식으로 파일을 만든다. 그 후 파일 안에 127.0.0.1이라는 ip값을 입력한다.
fck부분은 tmp/파일 밑에 파일 개수에 대해 계산을 한다.
다음으로 내가 입력한 파일명에대해 >여러 필터링 작업을 한 후 tmp/파일명 형식으로 파일을 생성하고 내 ip주소 값을 넣는다.
다음으로 scandir을 통해 tmp밑의 파일명들을 배열에 담고 전부 출력한다.

그 후 $ck에 파일 내부에 있는 첫번째 라인의 문자열인 127.0.01을 저장한다.

다음으로 $request에는 소켓통신에 필요한 값들이 들어가는데 이떄 Host: $ck에 127.0.0.1 값이 들어가게 된다. 그리고 이 ip주소로 7777번 포트로 소켓 연결을 시도한다.

뒤부분에 파일개수가 30개가 넘어가면 초기화를 하는데 이는 크게 중요한 작업은 아니다.

그렇다면 우리가 할 일은 127.0.0.1로 된 부분을 내 공인ip로 바뀔 수 있도록 하면 된다.

현재 새로고침을 할때마다 tmp-time()값인 파일이 생성되고 그 파일의 내부에 있는 ip인 127.0.0.1로 소켓 연결이 시도되고 있다. 그렇다면 이 time()값을 몇십초 정도후에 실행될 값으로 지정한 후 그 시간에 딱 업로드가 된다면 time()으로 인해 생성된 값이 그 후에 생기는 같은 이름의 파일인 내가 업로드한 파일로 인해 오버라이트 되면서 내 아이피 값이 $ck에 저장되게 될 것이다.

대충 보면 조금 헷갈릴 수 있지만 천천히 분석하시면서 보면 크게 어렵지 않을거라 생각한다.

그럼이제 실제로 동작을 하는지 실행해보자.
burp suit Repeater 기능으로 열심히 아직 발생되지 않은 시간값을 보내봤다.

 

외부에서 7777포트로 들어와야 되므로 칼리의 사설ip로 포트를 열어줬다. ( 우리집은 외부 포트포워딩이 안되는 공유기라 DMZ기능을 켰다.)

대기하고 있던 칼리쪽으로 키 값을 쏴준다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 39번  (0) 2018.01.15
webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
webhacking.kr 35번  (0) 2018.01.15
webhacking.kr 34번  (0) 2018.01.14
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 36번 문제다.

점수는 200point.

뭐가 없고 다음과 같은 화면이 다다.

이 문제같은 경우 vi편집기에 swp파일 생성되는 취약점을 위한 문제인 것 같다. 
vi 편집기같은 경우 파일작성중이거나 비정상 종료시 .파일명.확장자명.swp 같은 형식으로 숨김파일이 작성되고 내부내용을 어느정도 볼 수 가 있다.

이 취약점을 활용하면 현재 .index.php.swp 파일이 존재하고 여기로 접속하면 될 것 같다.

근데 접속이 안된다. 여기서 엄청 헤맸는데 알고보니 사이트 공사하면서 뭔가 문제가 생겨 제대로 동작하지 않는 문제인 것 같다. 또 안되는거가지고 시간 엄청 날렸다 ㅠ


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 35번  (0) 2018.01.15
webhacking.kr 34번  (0) 2018.01.14
webhacking.kr 33번  (0) 2018.01.14
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 35번 문제다. 

점수는 350point.

전화번호 입력창이 있고 소스가 있다.

소스를 확인해보니 일단 필터링이 되고있다. 쿼리문 파괴하는것 자체는 별로 어렵지 않아보인다. admin 사용자에 내 ip값만 id,ip값에 넣어주면 될 것 같다.

대충 123),('admin','x2x.xxx.xxx.xxx',1234 와 같이 insert sql injection 해주면 될 것 같다.

에러가 뜬다. 흠...뭐지... 코드상으론 문제가 없다. 아마도 php magic quote 기능때매 '가 자동으로 필터링 되고 있는 것 같다.

char()방식으로 값을 바까서 넣어봤다.

아스키값 구하기 귀찮아서 파이썬으로 대충코드짜서 구해서 대입했다.

 

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
webhacking.kr 34번  (0) 2018.01.14
webhacking.kr 33번  (0) 2018.01.14
webhacking.kr 32번  (0) 2018.01.14
블로그 이미지

JeonYoungSin

메모 기록용 공간

,