webhacking.kr 45번 문제다.

점수는 550point. 꽤 높은 점수다. 살짝 긴장 

들어가보니 인젝션 문제인 것 같다.

소스확인해보니 다행히 제공해준다.

id랑 pw가 몇가지 필터링당하고 있다. id에 admin만 불러오면 될 것 같다.
' id='admin'#으로 주면 될 것 같은데 해봤더니 안된다. 필터링부분에 따로 뭐가 없던걸 보면
php magic quote로 single quote를 필터링 하고 있는 것 같다. 그렇다면 우회를 해야하는데
처음보는 함수가 있다.

mb_convert_encoding()라는 함수가 입력값을 무슨처리를 하길래 찾아봤더니 3번째 인자로 들어온 인코딩 방식을 2번째 인자의 인코딩방식으로 전환시켜주는 것 같다.  이걸로 뭐하라는거지하고 있는데 연관검색어에 mb_convert_encoding 취약점이란게 보였다. 들어가보니 인코딩과정에서 멀티바이트 처리가되면서 백슬래시 앞에 %a1 ~ %fe 의 값이 들어오면 %a1\가 한개의 문자처럼 취급되는 취약점 이란다.

그렇다면 magic quote로 인해 \'방식으로 필터링되니까 %aa'  or id='admin'#방식으로 값을 주면 %aa\' or id='admin'#가 되어서 백슬레쉬가 문자가되어 우회가 될 것 같다.
id에서 admin이 필터링됬으니 char(97,100,109,105,110)로 바꾸고 특수문자 인코딩해서 넣어주면 될 것 같다.

시도해보니 다음과 같이 생각처럼 잘 동작한다.

성공!


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

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

JeonYoungSin

메모 기록용 공간

,

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

메모 기록용 공간

,

root-me PHP preg_replace()

2018. 1. 15. 03:44

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

root-me Directory traversal

2018. 1. 15. 02:49

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

root-me HTTP directory indexing

2018. 1. 15. 02:38

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.


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

메모 기록용 공간

,