'전체 글'에 해당되는 글 1000건


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

메모 기록용 공간

,