딱 보니 사이즈가    SQL INJECTION 문제이다.

우선 소스를 클릭해서 한번보자.

join으로 가입하고 login으로 접속하는 것 같은데

join에 eregi로 admin이 막혀있다.

그 밖에도 다양하게 막혀있다.

일단 그렇다면 aaa로 아이디를 만들어보자.

그냥 아무거나 아이디 비밀번호를 하면 

guest로 뜨기 때문에 guest말고 다른걸 lv로 출력하게 하기위해서

lv을 1로 해보았다.

그랬더니 1로 된다.

그렇다면 손쉽게

id를 admin의 반대인 nimda로 만들어주면


59번도 클리어!


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

Webhacking.kr 23번  (0) 2018.01.08
Webhacking.kr 33번  (0) 2018.01.05
Webhacking.kr 58번  (0) 2018.01.03
Webhacking.kr 32번  (0) 2018.01.02
Webhacking.kr 27번  (0) 2018.01.02


첫 화면은 심플하다.

소스를 보아하니 kk.js, kk2.js, hackme.swf 가 보인다.

그래서 kk.js를 들어가보니

2줄짜리 코드가 있다.

kk = document.URL은 주소를 kk에 저장한다는 것이다.

그리고 substr은 10번째 부터 4개를 다시 kk로 저장한다는 뜻이다.

그래서 http://webhacking.kr/challenge/web/web-35/kk.js에서

hack가 kk에 저장된다.

그뒤 kk2.js로 들어가보니

kk에 hack에다가 me.swf를 더하라고 되어있다.

그렇다면 hackme.swf가 완성된다.

그리고 hackme.swf는 제일 처음 코드에서 봤다.

그렇다면 주소창에

webhacking.kr/challenge/web/web-35/hackme.swf를 쳐 보니

저런 파일이 하나 받아진다.

이것은 첫 화면에 나오는 패스워드를 치는 창이 나온다.

그래서 이것을 메모장으로 열어보니

저런 한줄짜리 완성된 주소가 나온다.

이것을 주소창에 넣어보니

58번 클리어!


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

Webhacking.kr 33번  (0) 2018.01.05
Webhacking.kr 59번  (0) 2018.01.03
Webhacking.kr 32번  (0) 2018.01.02
Webhacking.kr 27번  (0) 2018.01.02
Webhacking.kr 21번  (0) 2017.12.29

32번이다.

랭킹문제인데 문제의 의도를 찾기가 힘들다.

일단 소스를 보니 join버튼을 누르면 vote=add가 시작된다.

밑에 있는 join버튼을 누르니 내 아이디가 랭킹에 포함이 되어 있다.

그래서 아이디를 누르니



안된다고 한다;;;

그래서 쿠키를 한번 열어보니까 

못보던 쿠키가 생겨져 있다.

그래서 vote_check를 지우고 클릭해보니

투표가 된다!

1등을 만들면 해결되는 문제같다.

그래서 계속 쿠기값을 지우고 누르고 하다보니

너무 어이가 없어서

자물쇠 밑에 금지표시를 눌러서

vote_check를 차단시켜버리니까

쿠키가 생기지 않아서 클릭만하면 생성되었다.

100을 돌파하니

32번 클리어!


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

Webhacking.kr 59번  (0) 2018.01.03
Webhacking.kr 58번  (0) 2018.01.03
Webhacking.kr 27번  (0) 2018.01.02
Webhacking.kr 21번  (0) 2017.12.29
Webhacking.kr 25번  (0) 2017.12.29

이번 문제는 SQL Injection 문제이다.

우선 소스에 index.phps가 주석에 있어서 들어가 보니

no에 input값이 들어가서 쿼리를 형성하는 데

eregi가 많은 문자들을 막고있다

일단 = 도 안되고 /도 #도 안된다.

주석을 할 방법을 찾아야 할 듯 싶다.

우선 0을 넣어보니 아무 값이 안뜬다.

1은 게스트이다.

2는 쿼리 에러가 뜬다.

즉 불러올수 없거나 id 가 guest가 아닌가보다.

그렇다면 

소스에서 봤던 것 처럼 (로 input값이 시작되기 때문에

0을 넣고 )으로 닫아주고

id가 admin인 값을 넣어보고 주석을 #인 %23을 넣어보니 %값이 %25로 찍혀서 나온다..


그래서 --도 막혔나 해서 넣어보니 잘 나온다.

하지만 0) or id like admin --은 되지않아서

0) or no like 2 -- 을 해보니

27번도 클리어!

(팁:  --뒤에 꼭 띄워쓰기를 해야한다!)


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

Webhacking.kr 58번  (0) 2018.01.03
Webhacking.kr 32번  (0) 2018.01.02
Webhacking.kr 21번  (0) 2017.12.29
Webhacking.kr 25번  (0) 2017.12.29
Webhacking.kr 18번  (0) 2017.12.27

다시한번 sql injection문제가 나왔다.

blind sql injection은 한번에 뚫기보다는 보통 길이 정도만 수동으로 알아봐주고

나머지는 파이썬 같은 코드로 알아내면 된다.

우선 제출을 누르니 주소창에 no=&id=&pw=가 나온다

아마 pw를 구하는 문제이지 싶다.

소스를 보니 제출 옆의 input값은 no에 값을넣어 주는 창이고 id와 pw는 따로 hidden으로 숨겨져 있었다.

여기서 1값과 2값을 넣어주니 Result값이 True로 변했다.

이 말은 

no   id   pw

테이블에서 no값은 1,2 라는 뜻 이다.

그렇다면 id의 길이를 알아보기 위해서

넣어보니 1,2 모두 5가 나왔다.

그래서 pw의 길이를 넣어서 찾아보니

1은 5, 2는 19가 나왔다.


그래서 admin이 있나 찾아보기 위해 단어의 제일 처음이 a인 것을 찾으니 

no=2 였고

2번째 자리가 d인 것도 no=2였다.

그래서 no = 2의 pw를 찾기로 해 보았다.

그래서 python소스를 이렇게 짜서 돌려보니

pw가 나왔다!


이것을 인증해 주면

21번도 클리어!!

(힌트: 답을 안보고 하실분은 소문자만 쓰이기 때문에 ascii의 범위를 97~122로 해주면 훨씬 빨리 값이 나옵니다)

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

Webhacking.kr 32번  (0) 2018.01.02
Webhacking.kr 27번  (0) 2018.01.02
Webhacking.kr 25번  (0) 2017.12.29
Webhacking.kr 18번  (0) 2017.12.27
Webhacking.kr 39번  (0) 2017.12.27

우선 첫화면이다.

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

+ Recent posts