'Wargame/wargame.kr'에 해당되는 글 36건


들어가보면 소스만 떡하니 나와있다.

분석해보면 pw랑 flags를 알아야 된다. 카운트 제한때문에 블라인드는 안된다.
요런식으로 쿼리를 날리면 패스워드 컬럼명을 알아낼 수 있다.

이제 id랑 pw를 구한다.

마지막으로 flag 구하면 끝난다.

id , pw , flag 값 넘기면 인증flag가 나온다.


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

wargame.kr dun worry about the vase  (0) 2018.01.08
wargame.kr mini TBR  (0) 2018.01.08
wargame.kr jff3_magic  (0) 2018.01.08
Wargame.kr keypad CrackMe  (0) 2018.01.04
wargame.kr QNA  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargame.kr 24번 jff3_magic 이라는 문제다.

점수는 800 point.

즐기고 가라는 부분인 것 같다. 시작해보자.

들어가보면 로그인화면이 나오고 여러 메뉴들이 존재한다. 근데 뭘해도 다시 원래 페이지로 돌아간다. 

이것저것 해보니 메뉴 버튼을 눌렀을대 no라는 인자를 넘기는데 여기에 쿼리 입력이 가능했다.


소스에선 딱히 볼게 없었꼬 이를 바탕으로 이것저것 값을 넣어 보내다보니 no=-1 || 1 이런식으로 넘겨줬을 때 admin 이라는 아이디를 보여줬다.  or,substr 등 필터링이 되있는 부분들이 좀 있어서 우회한다고 시간이 좀 걸렸다.

다음은 필자가 짠 파이썬 스크립트이다. 먼저 length는 막혀있지 않기때문에 pw의 길이를 구한다. 


다음으로 substr이 막혀있기 때문에 REGEXP라는 정규식 함수를 이용해 값을 구했다. 이부분에서 우회

방법을 찾느라 시간이 많이 들어갔다.

근데 키 값을 구하고 입력해보니 틀렸다고 하면서 이상한 값을 뱉어준다. 그 값을 구글에 쳐보니 Haval128,3 이라는 암호화 방식이란다.


이 때 예전에 한번 풀어봤던 것 처럼 암호화 했을 때 0e방식으로 나오면 지수형으로 비교가 되 type 비

교 취약점으로 인해 조건이 참이 되었던 magic hash가 떠올랐다. 혹시해서 Haval128,3에도 그런값이

있나 찾아봤다. 역시나 있었다. 그래서 입력해 보니 안된다. ..? 뭔가 싶어서 Haval,128,4 128,5도 입력

해봤는데 Haval 128,5의 Magic hash 값을 넣으니 플래그를 뱉었다. 이부분은 왜 3이라고 찾았는데 5

에서 됬는지 모르겠지만 일단 중요한 문제는 아닌 것 같다. 

어쨌든 성공!


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

wargame.kr mini TBR  (0) 2018.01.08
wargame.kr adm1nkyj  (0) 2018.01.08
Wargame.kr keypad CrackMe  (0) 2018.01.04
wargame.kr QNA  (0) 2018.01.04
wargame.kr phc? c?  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

Wargame.kr keypad CrackMe

2018. 1. 4. 17:18

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


wargame.kr 23번 QnA 라는 문제다.

점수는 800 point. 이제부턴 진짜 머리가 아파질 것 같다.

Time based 기반의 sql injection 인 것 같다. 시작해보자.

들어가보면 다양한 메뉴가 존재하는데 마지막 부분에 값을 넘기는 부분이 있다.


실제로 전송 버튼을 눌러보면 다음과 같이 cont=&mail=guest&type=1 형식으로 값이 넘어가고 있고

이 중에 뭔가 쿼리 공격이 가능할 것 같은게 있을거 같아 하나씩 sleep() 넣고 돌려봤더니 type변수에서

역시나 먹히는걸 확인할 수 있었다.

전에 풀었던 문제에서 활용했던 time based 방식과 비슷하게 파이썬 스크립트를 만들었다.

작성한 코드를 돌려주면 키 값이 나온다. 소스에 대한 자세한 내용은 따로 문의해주길 바란다.

800점대 문제라 긴장했지만 전에 먼저 다뤄봤던 방식이라 생각보다 쉽게 풀 수 있었다.

어쨌든 성공!!


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

wargame.kr jff3_magic  (0) 2018.01.08
Wargame.kr keypad CrackMe  (0) 2018.01.04
wargame.kr phc? c?  (0) 2018.01.04
wargame.kr ip log table  (0) 2018.01.04
wargame.kr lonely guys  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargmae.kr 22번 php? c? 라는 문제다.

점수는 700point. 마지막 700점 짜리 web 문제다.

32bit int형? 아직 감이 안온다. 시작해보자.

들어가보니 로그인 창이 보인다. 일단 소스부터 확인하자.

생각보다 간단하다. 입력한 아이디 값을 인자로 /tmp/p7이란 파일을 실행하고 결과 값이 1이 아니거나

비밀번호 입력값과 같으면 된단다. 그렇다면 /tmp/p7 파일을 만드는 ./p7.c에 가서 소스를 확인해보자.

간단하다. nono()라는 함수가 실행되지 않으면 된다. 근데 그럴려면 i<5라는 조건에 들어가야 하는데

언뜻보면 i<0, i+5 ,i>4 이 세가지를 연결해 생각해봤을때 절대 i<5라는 조건에 들어갈수 없을 것 같다.

이 때 주최자가 주었던 힌트를 감안해 32 bit integer 형에서 오버플로우가 생긴다면 뭔가 될 것 같다.

바로 저 코드에 int형 최대값을 주고 실행해봤다.

오... 1이 아닌 이상한 값이 나왔다.

이대로 아이디와 비밀번호를 입력해주면 될 것 같다. 처음에 그대로 화면에 쳤는데 실패를 한다. 아무래

도 길이 제한이 걸려있는 것 같다. burp suit를 통해 다시 보내봤다.

성공! 700점대에서 많이 헤매고 삽질을 해서 마지막 700점대 웹문제라 긴장했는데 너무 쉬워서 맥이

빠졌다. 이제 800점댄데 또 얼마나 많은 삽질을 할지 긴장이된다.  


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

Wargame.kr keypad CrackMe  (0) 2018.01.04
wargame.kr QNA  (0) 2018.01.04
wargame.kr ip log table  (0) 2018.01.04
wargame.kr lonely guys  (0) 2018.01.04
wargame.kr dmbs335  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargame.kr 20번 lonely guys 라는 문제다.

점수는 700point.

ordey by를 이용한 블라인드 인젝션 문제인 것 같다. 시작해보자.

흠.. 일단 보니 reg_single이라는 버튼을 누르면 asc desc 방식으로 쿼리를 넘겨 정렬이 되는 것 같다.

소스부터 확인해보자.

보아하니 order by 절뒤에 sort를 통해 값을 줘 쿼리를 만들 수 있을 것 같다.

order by에 대해 좀 찾아보니 칼럼명 대신 (1) , (2), (3) 과 같은 방식으로 숫자로 치환하여 사용이 가능

하다고 한다.

이를 활용하면 서브쿼리를 저 안에 넣어 블라인드 인젝션이 가능할 것 같다.

여기까진 잘 추론을 했는데 처음에 서브쿼리 특성을 정확히 모른채로 풀다가 엄한데서 에러찾고 엄청난 삽질.....하...역시 배워야 산다...

일단 제일 먼저 if문을 통해 간단히 참 거짓을 찾아 시도해 봤으나 실패.... 삽질하다 찾아보니 ordey by 절에서는 if문이 안통하는 것 같다....

그래서 sleep()함수를 써서 time base 기반의 블라인드 인젝션을 시도해봤다. 

코드는 필자가 짠 파이썬 스크립트이다.

먼저 키 값의 길이를 뱉어주고 다음으로 키 값을 뱉어낸다.

하.. 파이썬 2점대 버전이아니고 3점대 버전에서 하다보니 예상치 못한 오류가 너무 많았다.

코드보고 보고 이해 안되시는 부분은 문의해주시면 답변해드리겠습니다.

어쨌든 성공!!


휴..
이거한다고 또 엄청난 삽질......막상 하고 보면 별거아니었는데 하루를 거의 다 써버렸다... 후... 디비건

언어건 역시 아직 너무 많이 부족하다...제일 중요한  아이디어를 떠올려도 구현하는데 너무 오랜시간이

걸린다 ㅠㅠ 아직 처음이라 그런거라 믿고 싶다.

끈임없이 공부해서 빨리 실력을 더 키워야 할 것 같다.


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

wargame.kr QNA  (0) 2018.01.04
wargame.kr phc? c?  (0) 2018.01.04
wargame.kr lonely guys  (0) 2018.01.04
wargame.kr dmbs335  (0) 2018.01.04
wargame.kr crack crack crack it!  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargame.kr 20번 lonely guys 라는 문제다.

점수는 700point.

ordey by를 이용한 블라인드 인젝션 문제인 것 같다. 시작해보자.

흠.. 일단 보니 reg_single이라는 버튼을 누르면 asc desc 방식으로 쿼리를 넘겨 정렬이 되는 것 같다.

소스부터 확인해보자.

보아하니 order by 절뒤에 sort를 통해 값을 줘 쿼리를 만들 수 있을 것 같다.

order by에 대해 좀 찾아보니 칼럼명 대신 (1) , (2), (3) 과 같은 방식으로 숫자로 치환하여 사용이 가능

하다고 한다.

이를 활용하면 서브쿼리를 저 안에 넣어 블라인드 인젝션이 가능할 것 같다.

여기까진 잘 추론을 했는데 처음에 서브쿼리 특성을 정확히 모른채로 풀다가 엄한데서 에러찾고 엄청난 삽질.....하...역시 배워야 산다...

일단 제일 먼저 if문을 통해 간단히 참 거짓을 찾아 시도해 봤으나 실패.... 삽질하다 찾아보니 ordey by 절에서는 if문이 안통하는 것 같다....

그래서 sleep()함수를 써서 time base 기반의 블라인드 인젝션을 시도해봤다. 

코드는 필자가 짠 파이썬 스크립트이다.

먼저 키 값의 길이를 뱉어주고 다음으로 키 값을 뱉어낸다.

하.. 파이썬 2점대 버전이아니고 3점대 버전에서 하다보니 예상치 못한 오류가 너무 많았다.

코드보고 보고 이해 안되시는 부분은 문의해주시면 답변해드리겠습니다.

어쨌든 성공!!


휴..
이거한다고 또 엄청난 삽질......막상 하고 보면 별거아니었는데 하루를 거의 다 써버렸다... 후... 디비건

언어건 역시 아직 너무 많이 부족하다...제일 중요한  아이디어를 떠올려도 구현하는데 너무 오랜시간이

걸린다 ㅠㅠ 아직 처음이라 그런거라 믿고 싶다.

끈임없이 공부해서 빨리 실력을 더 키워야 할 것 같다.


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

wargame.kr phc? c?  (0) 2018.01.04
wargame.kr ip log table  (0) 2018.01.04
wargame.kr dmbs335  (0) 2018.01.04
wargame.kr crack crack crack it!  (0) 2018.01.04
wargame.kr img recovery  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargame.kr 19번 dmbs335 라는 문제다.

점수는 700point. 점수가 올랐다. 살짝 긴장이 된다.

sql injection 문제인 것 같다. 시작해보자.

흠... 검색 가능한 게시판이 보인다. 검색어로 sql injection이 이루어질 것 같다.

소스부터 확인해보자.


일단 먼저 select 구문에 $where_clause라는 변수를 통해 입력이 가능할 것 같다.

그렇다면 이 변수의 값을 원하는 값으로 넣어줘야하는데 관련된 소스를 찾아봤다.

보아하니 query_parts라는 변수가 존재하면 이 변수의 값을 통해 where_clause의 값이 정해지는 것 같

고 query_parts는 col이란 변수가 존재하면 값이 만들어 지는 것 같다.

그렇다면 col의 값을 매칭되지 않는 값으로 넘겨 존재하지 않게 만들고 query_parts의 값을 내가 원하는 쿼리값으로 만들면 성공적으로 sql injection이 일어날 것 같다.

그렇다면 query_parts의 값을 원하는 값으로 만들어야 되는데 자세히보니 url 값이 넘어올 때 parse_str란 함수가 씌워진다. 뭔가 하고 찾아봤더니 url값을 받아 변수로 만들어 주는 함수란다.

그렇다면 이 함수를 통해 임의로 col의 값을 매칭되지 않는 값으로 변조하고 query_parts의 내가 원하는 값으로 추가해버리면 될 것 같다.

burp suit를 키고 url값에 1 union select 1,2,3,4 # 을 줘봤다. 정상적으로 나온다.

그렇다면 이제 할 일은 정해졌다. simpleboard 문제에서 썻던 쿼리를 거의 그대로 가져다 썻다.

먼저 1 union select table_name,2,3,4 from information_schema.tables # 쿼리를 주고 테이블을 구한다.

다음으로 플래그를 구한다.
1 union select column_name,2,3,4 from information_schema.columns where table_name='Th1s_1s_Flag_tbl'#

마지막으로 플래그를 구한다.
1 union select f1ag,2,3,4 from Th1s_1s_Flag_tbl #

성공! 점수가 올라서 살짝 기대했는데 생각보다 쉬워서 맥이 빠졌던 문제.


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

wargame.kr ip log table  (0) 2018.01.04
wargame.kr lonely guys  (0) 2018.01.04
wargame.kr crack crack crack it!  (0) 2018.01.04
wargame.kr img recovery  (0) 2018.01.04
wargame.kr pyc decompile  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargame.kr 18번 crack crack crack it! 이라는 문제다

점수는 650 point.

.htaccess 라는 파일을 bruteforce attack 하라는 것 같다.


흠... 일단 패스워드 파일을 다운받아야 할 것 같다.

파일을 열어보니 md5 방식으로 암호화 되어 있는 것 같다.

john the ripper란 brute force attack 툴로 크랙하면 될 것 같다.

자 그럼 사용자가 줬던 G4HeulB로 시작하고 나머지는 알파벳 소문자와 숫자만 존재한다는 힌트를 감안

하여 wordlist를 넘겨 줄 간단한 파이썬 스크립트를 짜면 될 것 같다.

max 값은 총 몇자인지 확실히 몰라 대충 6주고 시작해봤는데 뒤에 추가될 부분이 6개이하라 한번에 성공했다.

이제 존더리퍼로 사용하면 다음과 같이 G4HeulBzb11이라는 비밀번호가 크랙됬다.


홈페이지에 가서 키를 입력해봤다.


성공!


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

wargame.kr lonely guys  (0) 2018.01.04
wargame.kr dmbs335  (0) 2018.01.04
wargame.kr img recovery  (0) 2018.01.04
wargame.kr pyc decompile  (0) 2018.01.04
wargame.kr web chatting  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

wargame.kr img recovery

2018. 1. 4. 17:00

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