webhacking.kr(19)
-
webhacking.kr 38번 문제(old)
아무 값이나 입력해보자. 우선 필자는 1이라는 값을 입력했다. 그렇다면 이제 현재 자신의 아이피:입력 값이 출력된다. 아마 자신의ip 에 해당하는 입력값이 admin 이면 풀릴 것 같다. 그럼 우선 admin 을 입력해보자. 어드민이 아니라고 한다. 이 경우에는 f12 를 눌러 소스보기를 한 후에 input 태르를 textarea 태그로 바꾼 후 아무값이나 입력한 후 줄바꿈을 해서 자신의 ip:admin을 적어보자. 이렇게 입력하고 admin.php 페이지에 들어가면?
2019.11.08 -
webhacking.kr 34번 문제(old)
이 debug me 라는 alert 창을 잘 기억해 두자 필자는 정석인지 아닌지 잘 모르겟지만 코드를 분석해서 찾았다. 소스코드를 확인해보면 위와같은 script 태그 가 있는데 그 태그를 까보면 이런 엄청난 문자열 들이 있다. 우선 보기 편하게 javascript beautifier 를 이용해서 코드를 보기쉽게 정리해보았다. 코드를 정리하면 이런식으로 나오는데 이 코드를 먼저 개발자도구의 콘솔창에 입력하자. 그리고 코드를 살펴볼건데 이러한 소스가 가장 눈에 띄었다. 이 소스를 보면 조건문을 거치고 아니라면 alert() 창을 띄우고 안에 어떤 문자열을 출력하는 것 같다. 그래서 alert(b('0x1e', '14cN')); 이 alert() 명령어를 복사해 크롬 콘솔창에 넣으면 이러한 처음 들어왔을때와..
2019.11.08 -
webhacking.kr 32번 문제(old)
위의 사진처럼 32번 문제에 들어가면 순위표 ? 비슷한게 보입니다. 그리고 아무 닉네임이나 클릭하면 아래와같이 분명 첫번째 사진에서 랭킹 2위의 값이 47 이였는데 클릭하니 48로 바뀌었다. 그러고 보니 ctrl + f 키를 눌러서 내 아이디 값을 찾은 후 그 점수를 100점으로 맞추어보자. 내 아이디를 누르니 이미 투표를 진행했다며 점수가 올라가지 않는다. 쿠키를 확인해보자. vote_check 라는 쿠키가 만들어져 있고 그 값에 ok 라고 적혀있다. 아마 이 쿠키값을 다른 값으로 바꾸면 투표가 진행 될 것 처럼 보인다. 하지만 그렇다면 100번의 쿠키값을 변경해 주어야 하기 때문에 ok 라는 값을 에초에 차단을 시켜보자. vote_check를 차단시켜버리니까 쿠키가 생기지 않아서 클릭만하면 생성되었다..
2019.11.08 -
webhacking.kr 61번 문제(old)
이 문제는 N00bCTF Web 문제 SQL N00b1 이라는 문제와 똑같은 문제이다. -컬럼별칭이란 친구를 부를 때 이름 대신 별명을 부를 때도 있는 것처럼 기존 컬럼명 대신 자신이 설정한 명칭(별칭)으로 컬럼을 출력한다. ex) SELECT a id from table 위처럼 하면 id 이라는 컬럼에 a 라는 별명을 붙혀서 a 의 값이 출력되어 나오게 한다. 이를 이용해서 id 의 값을 admin으로 만들어보자. 분명 필터링에는 admin 값이 없었지만 admin 값을 넣으니 아무것도 변하지 않는다. 그렇다면 admin 값을 16진수로 바꿔서 0x61646d696e 값을 넣어보자.
2019.10.28 -
webhacking.kr 49번 문제(old)
49번 문제를 들어가면 위와같은 페이지가 출력된다. 소스를 확인해보자. lv를 GET 방식으로 입력받고 결과값(ID)을 출력해준다. 이 값이 admin 이면 문제가 풀리는 형식인것 같다. 싱글쿼터와 더블쿼터가 우회되어있으니 id='admin' , id="admin" 과 같은 방식으로는 admin을 만들어주지 못할것 같다. 그래서 16 진수나 char() 함수를 이용해서 admin을 만들어보자. 0x61646d696e -> 16진수로 표현한 admin char(97,100,109,105,110) -> char() 로 표현한 admin 이 값들을 공백과 or,and 연산자 그리고 =을 피해서 대입해주면 문제가 풀릴것 같다. ?lv=1%0a%26%26%0aid%0alike%0a0x61646d696e - %0a..
2019.10.18 -
webhacking.kr 54번 문제(old)
이 문제를 들어가자마자 Password is 하고 어떤 문자들이 미친듯이 출력된다. 바로 소스코드를 확인해보자. 이 스크립트 때문에 password 가 출력되는 것 같은데 우선 이 코드를 복사해서 개발자도구인 console 창에 입력해보자. 그렇다면 다시 스크립트 함수가 실행되서 password 가 출력되는 것을 볼 수 있다. 여기서 알아야할 함수는 setTimeout() 함수인데 이 함수는 일정시간마다 계속 함수를 불러와서 실행해준다. 1000 단위마다 1초이기 때문에 이 문제는 1초보다 빠르게 글자가 바뀌는 것으로 보이니 setTimeout("answer(+i+),20); 부분이 실행되는 것 같다. 그렇다면 저 코드에서 answer 함수를 0.02초마다 실행해 주는데 그 값을 계속 덮어쓴다. 그래서 ..
2019.10.18