SQL Injection
-
[Webhacking.kr] 49번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 21:06
46번 문제처럼 level이 1로 초기화되어 있다.제출해보니 get 방식으로 lv 값이 전송된다. zzibong이 페이지에 출력된다. lv의 값을 변경해보자. 역시나 46번과 마찬가지로 level의 값은 1이외에는 없는것 같다.소스를 보자. lv 값에서 몇몇 문자열을 필터링하고 있으며, id 값이 admin이면 문제가 풀린다.or이 필터링되어 있기때문에 ||가 동작하는지 알아보았다. or 대신 ||를 사용하면 된다.여전히 '는 막혀있기 때문에 2진수, 16진수, char함수를 이용할 수 있다.이 문제는 ,가 필터링되어 있기때문에 2진수, 16진수를 사용해야한다. 1. 2진수 (admin : 0b0110000101100100011011010110100101101110) 2. 16진수 (admin : 0x6..
-
[Webhacking.kr] 27번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 01:39
SQL Injection 문제이다.소스를 보자. 주석처리되어 있는 index.phps로 접근하였다. 소스를 보니 eregi 함수로 #, union, from, challenge, select, (, tab, /, limit, =, 0x가 필터링되어 있으며,18번 문제와 마찬가지로 no에 입력값이 바로 삽입되어 취약점이 발생한다.쿼리문의 결과로 나온 id 값이 admin이면 문제가 풀린다. 우선, guest의 no를 찾아보았다. guest의 no의 값은 1이다. 쿼리문을 참으로 만들어 admin으로 만들 수 있는 경우는 18번과 마찬가지로 2가지로 생각해보았다. 1. ?no=0 or id='admin'2. ?no=0 or no='admin의 no 값' ?no=0 or id like 'admin'을 입력해보..
-
-
[Webhacking.kr] 18번 풀이Wargame/webhacking.kr (old) 2019. 4. 19. 23:11
SQL Injection 문제이다.SQL Injection이 무엇인지 알아보자. SQL Injection이란?DB로 전달되는 값에 정상적인 값 대신SQL 쿼리문을 삽입해 DB 상에서 의도치 않은 결과 값이 나오도록 하는 공격 기법 index.phps 를 클릭하면 php 소스를 볼 수 있다. 소스 코드를 보니 몇몇 문자열이 필터링 되어 있고,쿼리문에 no로 입력해준 값을 바로 삽입하여 취약점이 발생하게끔 소스가 짜여져 있다.해당 쿼리문에 대한 결과 값이 admin이면 문제가 풀린다. - eregi("찾고자 하는 문자", "임의의 값") : 대소문자 구분x- ereg("찾고자 하는 문자", "임의의 값") : 대소문자 구분o eregi 함수를 이용하여 space, /, (, ), tab, |, &, unio..
-
[Webhacking.kr] 3번 풀이Wargame/webhacking.kr (old) 2019. 2. 28. 01:15
네모로직이다. 네모로직을 풀고, gogo 버튼을 눌렀더니, get 방식으로 어떤 값들이 전송되고 새로운 페이지로 넘어갔다. 새로운 페이지에는 name을 입력할 수 있는 폼이 존재한다. get 방식으로 전송되는 값이 무엇인지 알아보기 위해 개발자도구(F12)로 이전 페이지의 소스 코드를 보았다. hidden type으로 로직의 결과가 get 방식으로 전송되고 있다. (검정 : 1, 흰: 0) 다시 원래 페이지로 넘어가서, name에 test를 입력해 주었더니 페이지에 아래와 같이 출력되었다. 일단 입력할 수 있는 것이 name 밖에 없으니 name의 값으로 SQL Injection을 시도하였다. 입력한 그대로 출력된다...? name은 공격벡터가 아닌 것 같다. 소스 코드를 보자. post 방식으로 ans..