목록Hacking/Webhacking.kr (14)
minhui study
Challenge 25 - 150 Points 25번을 누르면 첫 화면은 다음과 같다. url에 file=hello.php라고 입력했을 때는 아무것도 나오지 않는다. 그래서 flag.php을 열기 위해서 주소창에 flag를 입력해보면 FLAG is in the code가 나온다. 이를 통해 아마도 flag.php코드를 본다면 flag를 얻을 수 있을 것이라는 걸 짐작할 수 있다. 여기서 잠깐 필요한 지식인 lfi라고 알려진 취약점과 php wrapper에 대해 짚고 넘어가보자 * lfi란 local file inclusion의 약자로 우리가 공격할 서버에 있는 파일을 사용하여 공격을 수행하는 방법이다. lfi취약점은 php로 만들어진 웹 사이트에서 include, require, require_once,..
Challenge 19 - 150 Points 위와 같이 id를 입력하는 칸이 있고 코드를 보면 최대 5글자까지 입력할 수 있다. 하지만 admin을 입력하고 제출버튼을 누르면 you are not admin이라고 뜬다. 여기서 id를 url에 입력할 시에는 6글자 이상을 넘겨줄 수도 있다. 아이디가 admin인 건 맞는 것 같은데 admin이라고 했을 때 you are not admin이라고 출력되므로 admin이지만 6글자 이상으로 입력해보자 null문자인 %00을 admin사이에 넣어 a%00dmin이라고 넣어보면 문제가 풀리게 된다.
Challenge 54 - 100 Points 문제를 누르면 Password is ~~하면서 ~~부분에 뭔가가 한글자씩 값이 나온다. 일단 소스코드를 보자 코드를 보면 크게 run()함수와 answer()함수가 정의되어 있다. 먼저 run() 함수부터 살펴보자 run()함수는 Ajax를 위한 객체를 생성하는 함수이다. Ajax는 Asynchronous JavaScript and XML의 약자로 자바스크립트를 이용하여 비동기적으로 서버와 브라우저가 데이터를 주고받는 방식이다. IE 6버전 이하는 ActiveXObject를 사용하고, IE 7버전 이상, 크롬과 같은 다른 웹브라우저는 XMLHttpRequest를 사용하여 객체를 생성한다. (window.XMLHttpRequest 는 IE7이상, 파이어폭스, ..
Challenge 15 - 50 Points 15번 문제를 클릭하는 순간 다음과 같은 알림창이 뜨고 확인을 누르면 다시 전페이지로 돌아가 문제를 풀 수 조차 없게 되어 있었다. 개발자 도구(F12) -> 세팅(F1) -> 디버거 -> Disable JavaScript 체크 그래서 다음과 같이 자바스크립트를 끄고 F12를 눌렀더니 다음과 같은 코드가 나왔다. 코드를 보니 document.write가 실행되기도 전에 alert가 실행된다는 걸 알 수 있다. 그래서 url에 ?getFlag를 입력하여 페이지를 이동해보니 문제가 해결되었다.
Challenge 17 - 100 Points 소스 코드를 확인해보자 코드를 보니 unlock값이 비밀번호이면 해결되는 문제인 것 같다. visual studio code로 다음 값을 계산해보았다. 다음과 같이 나온 값 7809207.1을 입력하면 문제가 풀린다. 그리고 url에는 10으로 나눈 값이 뜨는 걸 확인할 수 있다.
Challenge 01 - 200 Points :: Cookie view-source를 누르면 아래와 같이 소스를 확인할 수 있다. if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1; *is_numeric()함수 : 특정 데이터의 값이 숫자인지 아닌지를 확인하여 결과를 반환하는 함수로 숫자형 데이터인 경우 true를 아닌 경우에는 false를 반환한다. 그러므로 만약 user_lv쿠키값이 숫자형 데이터가 아닐 경우 쿠키값에 1이 들어간다는 뜻이다. if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1; if($_COOKIE['user_lv']>5) solve(1); 만약 user_lv쿠키값이 6보다 같거나 크면 쿠키..