전체 글(86)
-
Los troll 8번 문제 (rubiya)
그냥 id 의 값이 admin 이면 풀린다. 이전의 문제는 id 를 ereg 함수로 입력받아서 대소문자 구별을 안했지만 이번의 문제는 preg_match 함수라 대소문자로 나눠서 입력해도 뚫리지 않는다. 하지만 왜인지모르게 Admin admIn 처럼 대소문자를 구별해서 입력하면 문제가 풀린다...
2019.10.10 -
Los orge 7번 문제 (rubiya)
이번 문제도 4번 문제와 비슷하게 admin 의 비밀번호를 맞추는 문제이다 . 하지만 or 과 and 연산자가 막혀있기 때문에 파이프와(||) 앰퍼센트(&&) 기호로 우회해 length() , substr() 함수를 사용해서 이 문제를 풀어보자. ?pw=%27%20||%20id=%27admin%27%20%26%26%20length(pw)=8%23 이러한 파라미터 값을 통해 pw 의 길이가 8인것을 구했으니 python 코드를 이용해 비밀번호를 추출해보자.
2019.10.10 -
Los darkelf 6번 문제 (rubiya)
이번문제도 id 를 어드민으로 만들면 풀리는 문제이다. 하지만 preg_match 함수로 or 과 and 연산자를 막아놓았다. 그렇지만 or과 and 연산자는 각각 ||(파이프) , &&(앰퍼센트) 기호로 우회할 수 있다. 이를 이용해서 id 값을 admin 으로 지정해주자.
2019.10.10 -
Los wolfman 5번 문제 (rubiya)
이번문제는 id 가 admin 이면 solve 함수가 실행되어 풀리는 문제이다. 이전처럼 or , and 연산자를 활용해 바로 쿼리문을 날려보자. ?pw=%27%20or%20id=%27admin%27%23 이러한 쿼리문을 날렸는데 공백은 쓰지 말라고한다.. 저 쿼리문에서 ' -> %27 공백 -> %20 %23 -> # 을 의미하는데 모두 url encoding 된 값이다. 그렇다면 %20을 어떻게 해줘야하는데 mysql 에서 공백을 우회하는데에는 1. Tab : %09 - no=1%09or%09id='admin' 2. Line Feed (\n): %0a - no=1%0aor%0aid='admin' 3. Carrage Return(\r) : %0d - no=1%0dor%0did='admin' 4. 주석 ..
2019.10.10 -
Los orc 4번 문제 (rubiya)
이번 문제를 풀기전 꼭 python requests 모듈을 공부해서 오시는것을 권장합니다. 우선 이번 문제는 admin의 비밀번호를 알아내는 문제이다. 하지만 마술처럼 한번에 모든 비밀번호를 알아내는것이 아니라 한글자씩 비교해서 찾아나가야 하기 때문에 python requests 모듈이 없다면 엄청난 노가다가 예상된다... 우선 문제 풀이를 적기전 substr() , length() 함수를 설명하자면 length() 함수는 길이를 구하는 함수이고 substr() 함수는 문자를 찾는 함수이다 substr ( 구할 변수나 문자열의 이름 , 시작 위치 , 글자수 ) ex) $id='admin'; echo length($id);->5 echo substr(id,1,1)->a 이처럼 위의 함수들을 응용해서 adm..
2019.10.09 -
Los goblin 3번 문제 (rubiya)
이번 문제도 이전문제 처럼 id 를 admin 으로 만들어 주면 풀릴것 같다. 하지만 GET방식으로 입력받는 값이 id가 아니고 no이다. 이럴때에는 or 이나 and 연산자를 사용해 id 의 값을 지정해 줄 수 있다. 그래서 이번 문제도 or , and 연산자를 사용해 id 의 값을 admin 으로 만들어 보자 ?no=0 or id='admin' 위와같은 파라미터 값을 제출했는데 싱글쿼터(')를 막아놓은것 같다. 자세히 보면 ' 와 " 모두 막아놓았다. 그렇다면 admin 은 문자열이기때문에 표시를 못하나? 그런것도 아니다. char() 함수나 16 진수로 admin 을 만들어서 제출 해보면 될 것 이다. admin -0x61646d696e ->admin을 16진수로 표현 -char(97,100,109..
2019.10.09