우선 첫화면이다.

hello world가 적힌 곳은 값은 입력되지만 저장은 안되는 것 같다.

위에 존재하는 리눅스에서 볼 수 있는 파일에 관한 정보가 출력되어있다.

아마 저것이 힌트가 될 듯 싶다.

소스를 봐도 별게 없다.

딱히 인풋값도 넣을 수 있는게 없다.

그런데 주소값을 보니 file = 뒤에 hello가 있다.

아마 파일입력을 저기다 해도 될 듯 싶다.

index파일명을 집어 넣어 보았다.

하지만 변화되는 것은 없다.

password를 집어넣어도 변화가 없다.

쿠키값도 문제가 없다.

뭐가 문제일까 인터넷을 뒤지던 중 문자열을 종결 시키는 %00을 찾았다.

password값으로 넣어 보았더니 답이 출력되었다.

25번 클리어!


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 27번  (0) 2018.01.02
Webhacking.kr 21번  (0) 2017.12.29
Webhacking.kr 18번  (0) 2017.12.27
Webhacking.kr 39번  (0) 2017.12.27
Webhacking.kr 52번  (0) 2017.11.18

18번문제다!

우선 sql injection문제이다.

los를 좀 풀어봐서 쉬울거라 생각했다.

index.php를 누르면 소스를 보여준다.

우선 쿼리문에서 id=guest와 no=제출된 값 을 불러와 그게 guest면 hi guest

admin값이면 정답이다.

우선 no=1이라고 치니까 hi guest를 띄운다

여기서 no =1 이면 guest값이라는 것을 알 수있다.

그렇다면 attribute는 id와 no 값이 있다고 가정할 수 있고

그것의 id= guest, no =1은 guest이다.

그렇지만 우리는 admin을 찾아야한다.

그래서 처음 넣는 no값은 false여야 함으로 0을 넣고 그다음 admin값의 자리를 불러와야한다.

소스에서 eregi가 \t와 or, and를 막고 있기 때문에 or를 우회해 쓰려면

linefeed값인 %0a를 or앞뒤로 붙여준다.

그래서 " no=0%0aor%0ano=2"라고 했더니 아무것도 안뜬다.

그래서 위의 url창을 보니 no안에 no가 들어가있다.

그래서 소스를 보니 input창이 no다.

그렇다면 "0%0aor%0ano=2"를 치니

18번도 클리어!!



'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 21번  (0) 2017.12.29
Webhacking.kr 25번  (0) 2017.12.29
Webhacking.kr 39번  (0) 2017.12.27
Webhacking.kr 52번  (0) 2017.11.18
Webhacking.kr 47번  (0) 2017.11.18

39번 문제를 시작했다.

간만에 하는거라 처음에는 어디서 손댈지 몰랐지만


소스를 보니 index.phps가 나와있다.



아무거나 제출해 보니 mysql_fetch_array()에러가 나왔다.

그래서 일단 index.phps로 들어가보니

그랬더니 error에서 뜬 17번째 줄에 $_POST[id]뒤에 '가 없다.

그리고 위에서 str_replace에 \는 없어지고 '는 ''로 바뀐다.

그래서 제출칸에 '만 넣어주면 바뀌지 않는다.

그런데 substr에 0~15까지만 잘라서 id에 넣기때문에 그뒤는 없어진다.

그래서 15칸의 마지막에 ' 를 넣어주면 뒤의 '는 짤린다.

그래서 admin         '를 해주면

문제클리어!


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 25번  (0) 2017.12.29
Webhacking.kr 18번  (0) 2017.12.27
Webhacking.kr 52번  (0) 2017.11.18
Webhacking.kr 47번  (0) 2017.11.18
Webhacking.kr 38번  (0) 2017.11.18

첫 화면은 HEADER INJECTION이라고 떡하니 힌트를 주고 있다.

그래서 HEADER INJECTION에 관해 검색해보니

공격자가 헤더에 개행문자를 삽입해 헤더를 추가하여 공격하는 수동적 공격방식으로

이 공격이 허용되는 경우 쿠키를 임의대로 생성하거나 임의로 URL을 리다이렉트 시킬수 있다고 한다.

형식은

webhacking.kr/?id=gamja 가 원문이라면

webhacking.kr/?id=gamja %0dSet-Cookie: id=gamja 

이렇게 주입시키면 id=gamja가 생성된다.

그래서 그대로 대입해보니 왜그런지 "페이지 로딩이 잠시 지연되었습니다. "만 뜬다....

그래서 다른방법이 있나 찾던 차에

Set-Cookie자리에 clear를 넣어주는 방식이 있는 것을 찾았다. 

그래서 이대로 넣어주니

52번도 클리어


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 18번  (0) 2017.12.27
Webhacking.kr 39번  (0) 2017.12.27
Webhacking.kr 47번  (0) 2017.11.18
Webhacking.kr 38번  (0) 2017.11.18
Webhacking.kr 42번  (0) 2017.11.13

47번문제를 들어가 보았다.

미리 알리지만 제출 버튼 옆에 클릭하면 input할수있는 슬롯이 있다.

나는 아무것도 없는 건줄 알고 계속 찾았다....

여기서 메일의 기본 구조는 

(받는사람, 제목, 내용, 헤더)으로 되어 있다.

소스를 보니 email이라는 값이 우리가 빈 슬롯에 넣는 값이고

그것이 헤더가 되어서 받는 사람이

admin@webhacking.kr로 보내게 된다.

그래서 우리는 그것을 우리도 받아봐야 한다.

그렇기 때문에 헤더를 조정해야 하는데 그것을 하기위해서는 툴이 필요하다.

우선 Falcon Proxy로 인터넷이 프록시를 이용하도록 하고

burp suite으로 받아보고 수정해야 한다.

그 두개의 툴을 사용해 헤더를 변경해 주어야 한다.

이렇게 Falcon Proxy로 프록시 사용을 설정해 주고나서

burp suite으로 interface on을 해주면 내가 보낸것을 잡아올수 있는데 이때 우리는 우리도 메일을 볼 수있게 해야한다.

그중 한 방법이 cc라고 한다.

<cc(Carbon Copy, 참조) : 수신자 외 다른 사람에게도 수신>

이것으로 헤더에 추가해주면 cc:뒤에 붙은 사람에게도 메일이 수신되게 된다.


이렇게 변경한 후에 메일을 전송되게 interface off를 해주면 문제가 풀리게 된다.

이때 cc앞에 %0d%0a로 앞과 구분시켜주어야 한다.


이렇게 보내면 페이지에서 password를 알려주게 된다.

47번도 클리어!!!


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 39번  (0) 2017.12.27
Webhacking.kr 52번  (0) 2017.11.18
Webhacking.kr 38번  (0) 2017.11.18
Webhacking.kr 42번  (0) 2017.11.13
Webhacking.kr 26번  (0) 2017.11.12

LOG INJECTION문제이다.

우선 소스를 보아하니 빈칸에 ID를 넣고 

Login을 하거나

Admin을 누를수 있게 되어 있다.

먼저 ID에 admin을 넣어보니 당연히 안되었다.

그래서 이것 저것을 넣어보다 보니 아무것도 안먹히다가 \null을 넣었더니 ull만 출력되고 \n은 줄 띄우기로

먹혀있었다. 그래서 \n을 넣고 admin을 넣었더니 띄워써졌지만 문제는 풀리지 않았고

그래서 log형식대로 \n해 주고 자신의 id를 넣고 admin을 넣으니

풀렸다.

38번도 클리어!


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 52번  (0) 2017.11.18
Webhacking.kr 47번  (0) 2017.11.18
Webhacking.kr 42번  (0) 2017.11.13
Webhacking.kr 26번  (0) 2017.11.12
Webhacking.kr 24번  (0) 2017.11.12

이번에는 다운받으라는 표시를 해놓고 다운은 받지 못하게 해 놓았다.

그래서 소스를 좀 보니 첫번째 test.txt는

down=dGVzdC50eHQ=라고 되어있고

test.zip은 자바스크립트로 Access Denied를 걸어놓았다.

다른게 없어서

보기에도 base64같은 dGVzdC50eHQ= 를 디코딩 하니

똭 test.txt로 해석되었다. 이건 분명 운명은 아니겠다.

그래서 우리가 다운받고 싶은 test.zip파일을 인코딩해서 down=에다가 넣어주니

파일이 다운되어진다!!!

그런데 암호가 걸려있다.

200점 짜리라 그런가보다.

그래서 암호를 풀수있게 친절히 소스에다가 암호가 숫자만 되어 있다고 말해준 덕분에

이렇게 풀어보니

주소가 나왔고 거기로 들어가니 답이 나오더라.


42번도 클리어~!!!


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 47번  (0) 2017.11.18
Webhacking.kr 38번  (0) 2017.11.18
Webhacking.kr 26번  (0) 2017.11.12
Webhacking.kr 24번  (0) 2017.11.12
Webhacking.kr 6번  (0) 2017.10.22

26번은 뭐 꺼멓다.

index.phps를 클릭하면 다른 창으로 넘어간다.

창에는 어떻게 푸는지가 나와있다.

우선 eregi로 admin을 막아놓고 있다.

그리고 urlcode()를 한번 해준값을 id로 받고 그 값이 "admin"이면 패스!

그래서 우선 eregi를 우회하려고 찾아보니

php5.3+부터는 앞에 %00을 붙이면 필터링을 못한다고 한다.

그래서 id = %00admin을 하니 필터링을 한다....

낮은 버전을 사용하나보다.

그래서 우선 

정성스럽게 내 블로그의 urlcode표를 보며

admin을 urlcode로 %61%64%6D%69%6E 이렇게 바꾸어서 넣어보니 안된다...

그래서 webhacking.kr에 url->로 인코딩을 해 바꾸어주니

클리어가 나온다..

webhacking.kr은 php버전이 낮은걸로...

26번도 클리어


'WebHacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 38번  (0) 2017.11.18
Webhacking.kr 42번  (0) 2017.11.13
Webhacking.kr 24번  (0) 2017.11.12
Webhacking.kr 6번  (0) 2017.10.22
Webhacking.kr 4번  (0) 2017.10.22

+ Recent posts