'해킹문제풀이'에 해당되는 글 7건

  1. 2014.01.17 Challenges 24.
  2. 2013.03.13 -- [ 웹게임 ] Level. 2 --
  3. 2013.03.11 -- [ 웹게임 ] Level. 1 --
  4. 2013.03.08 Challenges 17.
  5. 2013.03.03 Challenges 14.
  6. 2013.02.22 Challenges 4.
  7. 2013.02.04 SQL Injection 종류

 

 

 

24번문제이다. 언뜻 보면 무슨 소린지모르겠다.

눈에띄는거라곤 맨밑에 Wrong IP!...

이문제에선 IP가 중요한가보다.

 

소스를 보면 주석처리 되어있는게 보인다.

이게 힌트임이 틀림없다.

 

 

php구문이다. 차근차근 내려가보자.

 

일단 눈에 띄는건 ip를 REMOTE_ADDR 이라고 한것이다.

 

if문이 보이는데 여기에서도 보이는 REMOTE_ADDR..

아까 위에서 ip라고 한거같았다.

str_replace는 php 명령어로

str_replace(검색할문자,바꿀문자,영역)

이렇게 사용된다.

정리해보면, 만약 REMOTE_ADDR이라 칭해지는 ip주소의 쿠키값이

12이면 ""공백으로 바뀌고, 7.이면 ""공백으로 바뀌고, 0.이면 공백으로 바뀐다 라고

할수 있을것같다.

이건 지극히 나의 생각일뿐이다.

 

 

 

 

여기선 만약 ip주소가 127.0.0.1이면 문제가 풀리고

그렇지 않으면 아까 맨처음에 봣던 Wrong IP! 라고

뜬다고한다.

ip를 127.0.0.1로 바꿔야 하나보다.

 

위에서 말했듯이 쿠키값을 생각해서 쿠키값변조를 시킬

쿡시툴바를 이용해 ip주소인 REMOTE_ADDR을 변조시켜보겠다.

생각해보면 127.0.0.1이라고 그냥 치게되면 12와 7. 그리고 0.이 공백으로 바뀌어

그냥 1만 인식하게된다.

그러므로 1122라고쓰게되면 가운데 12가 공백으로 처리되 12로 인식이되고,

77..으로 쓰게되면 7.이 공백으로 처리되 7.

00..은 0.이 공백으로 처리되 0. 으로 인식이된다.

 

쿠키값을 변조시킨후에 뒤로갔다가 다시 24번 문제를 클릭하게되면 ip 주소가 127.0.0.1로 바뀌면서

문제가 해결된다.

 

 

 

'해킹문제풀이 > http://webhacking.kr' 카테고리의 다른 글

Challenges 17.  (0) 2013.03.08
Challenges 14.  (0) 2013.03.03
Challenges 4.  (0) 2013.02.22
Posted by MUSH1

-- [ 웹게임 ] Level. 2 --



Level 2 문제를 풀어보도록할게요.

링크에 들어가보니 10개정도의 게시물이 있네요.

1번도 보고 2번도 보고.. 3번을 보는데...

저 3번하고 4번은 왜 txt 형식인지.. 일단은

눌러보죠




?? 레벨 제한이 걸려잇네요..




4번도 레벨제한이 걸려있고요.. 근데 이건 3번 게시물보다는 레벨제한이 낮네요

그래서 의아해서 맨위에있는 공지를 눌러봐야겠어요



읽어보니까 특정 level이상만 글을 읽을수있다고하는데요..

그럼 레벨 권한만 높혀주면 이문제는 풀리는건가봐요

쿡시툴바를 써서 쿠키값을 변조 시킬거에요.




레벨을 보니 아.. 3인네요.. 그러니까 게시물을 몇개 못보는거같아요

저 레벨제한을 제일높은 레벨 7로 바꿔볼께요.




불법적인 접근이라네요..

다른글을 아무리 눌러도 불법적인 접근이라고만 뜨네요..

그럼 레벨을.. 좀 낮춰볼라고요..ㅎ



레벨을 5로 바꿧더니 어라..ㅎㅎ

Answer.txt 게시물에 들어갈수잇어요

들어갓더니 오른쪽 상단에 Download가 .. 오..

클릭해보니 다운받을수잇네요



이때 문득 생각나는게 레벨 제한 7의 Password.txt 게시물..

오... 이건 제한레벨을 높이면 풀리는문제가 아니라

레벨제한을 높여서 Password.txt를 보는건가봐요

저 Password.txt 안에 이번 2번문제 답이 있는거같은..ㅎㅎ




그러기 위해선 다운로드 링크를 찾아야하므로 오른쪽 상단에있는 Answer.txt 의 속성을 확인하구요

주소(URL)을 복사해서 url 창에 복사해봅시다.




복사한걸 제가 원하는 Password.txt로 바꾸죠 ㅎㅎ 



Enter ㅋㅋ



열기를 누르면 txt 파일이 뜰거에요 ㅎㅎ

기대되네요..


... 당황했는데 이건 답이 아닐거에요 ㅎㅎ..

그쵸... 그래서 base64 decode가 생각이나

decoding 하려고해요 ㅋㅋ

대강 저런 글자가 32개가 있으면 md5를 의심해보라는

선배의 말을 잠시 참고해보면서..

base64 decode를 3번정도 해보면



문제가 풀리게 됩니다. 2번문제의 Password를 알려주네요.




'해킹문제풀이 > 와우해커-웹게임' 카테고리의 다른 글

-- [ 웹게임 ] Level. 1 --  (0) 2013.03.11
Posted by MUSH1

-- [ 웹게임 ] Level. 1 --




웹게임 1번 문제입니다. 사이트에 들어가면 1번 문제가 무엇인지 알게될겁니다.

힌트까지 미리 주었네요. php 소스코드를 봐야한다는데요

여기서 php 소스코드를 보는 법은 url에 xxxx.php라고 써있는 상태를 xxxx.phps라고 바꾸시면 됩니다.

phps가 php source 의 약자라고하더군요.

사이트로 들어가볼까요.


일단 겉으로 보기에는 ?key= ....key 값을 찾는건가봐요

힌트에 php소스코드를 보라했으니까 아까 위에서 말한것처럼 해보죠.




phps를 붙이면 아래와 같은 소스가 나옵니다.


echo는 c언어의 printf와 같은 역할을 합니다. 값을 출력하는것이죠.

if문 좀더 자세하게 봐볼까요.



if문에 key의 변수가 "wowhacker_hardware"일경우

키값이 나온다고 하는데요. 그럼 url에 key값을 "wowhacker_hardware"으로 지정해줘볼까요




입력을해주면..


key 값에 wowhacker_hardware 값이 들어가게되므로 WEBGAME KEY 값이 나오게 되네요.


인증코드에 넣고 GoGo~


이제 Level.2로 가보시죠.


'해킹문제풀이 > 와우해커-웹게임' 카테고리의 다른 글

-- [ 웹게임 ] Level. 2 --  (0) 2013.03.13
Posted by MUSH1

Challenges 17.


 

소스를 먼저 살펴볼게요


눈에 띄는게 unlock 이네요 저 unlock의 값을 알면되는데 저걸 다 계산할순 없겟죠..

자바스크립트 구문이므로 자바스크립트를 이용해서 unlock의 값을 알아본 후,

unlock 값을 입력하고 check를 누르면 팝업창이뜨면서 패스워드를 알려주는거같아요.


만약 unlock 값이 아닌경우에는 wrong!이 뜨게 되구요.

자바스크립트를 이용해볼게요 어떻게 이용해 볼까 하다가

제가 찾아봤는데 주소창에 자바스크립트 구문을 넣어도 반응을 하더라고요



이렇게 팝업창이 뜨더라고요 그래서 의심이 가는 unlock을 알려달라고 요청해 보려고합니다.

javascript:alert(“unlock”); 이라고 입력하시면 안되요

이렇게 입력하시면 팝업창에 unlock이 뜨겠죠? 근데 저희가 알고싶은건 unlock의 값이기 때문에 “”를 제외하고 입력해볼게요.


unlock의 값을 알게되었으므로 저 값을 입력해보죠.


패스워드를 알려줬어요 이제

14번 풀이처럼 Auth에 들어가 Flag에 패스워드를 입력하면 문제가 풀리게됩니다.

'해킹문제풀이 > http://webhacking.kr' 카테고리의 다른 글

Challenges 24.  (0) 2014.01.17
Challenges 14.  (0) 2013.03.03
Challenges 4.  (0) 2013.02.22
Posted by MUSH1

Challenges 14.

 

 

소스를 보면 check를 클릭하면 ck()으로 넘어가므로 function ck()를 자세히 들여다 보면서 분석해 보자.

 

한줄 한줄 분석해보면,,,

 

ul이라는 변수가 document.URL 이라는건데 URL 이면

 

현재 주소창에 써있는 URL을 의심해볼 수 있다.

 

indexof는 해당문자열의 자릿수를 반환하는 메소드이다.

.kr이 보이는 . 까지가 0부터 시작하면 17번째 자리이므로 ul17로 생각.

 

17 * 30 = 510

ul=510

 

답을 입력하면 패스워드를 알려준다.

만약 틀리면

잘못되었다고 팝업창이 뜰 것이다.

Auth에 들어가 Flag260100을 입력하면

(Auth를 찾아보니 담당자의 승인이라는 뜻이다.)

'해킹문제풀이 > http://webhacking.kr' 카테고리의 다른 글

Challenges 24.  (0) 2014.01.17
Challenges 17.  (0) 2013.03.08
Challenges 4.  (0) 2013.02.22
Posted by MUSH1

4번문제를 풀기위해선 브루트포싱(brute force) 기법을 알아야한다. 브루트포싱기법은 일반인도 할 수 있는 공격기법이다. 두가지 유형으로 나눠지는데 손수 공격과 프로그램 공격법으로 나눠진다.

프로그램 공격은 손수 하는 것보다 시간이 적게들고 힘이들지 않지만 정확하지 않은 경우도 나타난다. 그러나 손수 공격하는건 정확도가 높지만 시간이 많이들고 정신력과 끈기가 필요하다. 문제를 풀면서 생각을 해나가자.

로그인을 성공시켜야 하는 것 같다. 그러나 우리에겐 주어진 힌트가 없으므로 소스보기를 먼저 확인한다.

힌트가 소스에 주어져있고, admin으로 접속해야하는데 패스워드 범위가 2000부터 2999까지라는걸 알수 있다.

 

guest로 로그인한 화면


 

여기서 노가다로 2000부터 2999까지 일일이 확인하는게 손수 공격이다.

프로그램이 없으면 노가다를 해야 풀리는 문제.

 

 

'해킹문제풀이 > http://webhacking.kr' 카테고리의 다른 글

Challenges 24.  (0) 2014.01.17
Challenges 17.  (0) 2013.03.08
Challenges 14.  (0) 2013.03.03
Posted by MUSH1

SQL Injection 종류에 대해서 먼저 알아봅시다.

----------------------------------------------------------------------

1) 논리적 에러를 이용하는 SQL Injection

-> 논리적 에러를 통해 시스템 권한 체크를 우회하는 기법

)

select * from user_data where last_name = 'your name' or '1=1'

-------------------------------------------------------------------------

2) 쿼리 가능 여부를 이용하는 Blind SQL Injection

-> 악의적인 문자열 삽입 대신 쿼리 결과에 따라 정보를 취득하는 기법

1)

http://www.xxx.com/page.php?id=5 and 1=1

-> id=5() and 1=1() 이기 때문에 page.php?id=5 페이지가 보임

2)

http://www.xxx.com/page.php?id=5 and 1=2

-> id=5() and 1=2(거짓) 이기 때문에 쿼리가 실행 안되므로 아무런 결과가 없어야 한다

----------------------------------------------------------------------------

3) 두 개 이상의 쿼리를 이용하는 Union SQL Injection

-> UNION2개 이상의 쿼리를 요청하여 결과를 얻는 SQL 연산자이다.

공격자는 이를 악용하여 추가 쿼리를 삽입하여 정보를 얻어내는 방식

)

http://www.site.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables

-> information_schema.tables 에서 테이블 정보를 요청하여 정보를 얻으려는 시도.

-----------------------------------------------------------------------------

4) 저장 프로시저를 이용하는 Stored Procedure SQL Injection

-> 저장 프로시저는 운영상 편이를 위해 만들어둔 SQL 모음집.

특히 MSSQL에서 사용하는 xp_cmdshell은 윈도우 명령어를 실행하도록 역할을 제공

)

http://www.site.com/member/checkid.asp?id=';CREAT.....r.dbo.xp_cmdshell%20'netstat%20-an';


Posted by MUSH1
이전버튼 1 이전버튼