반응형

SQL 5

[LOS] Orge 문제 풀이

문제 풀이 처음에 문제를 보고 org문제와 비슷하다는 생각을 했다. org문제처럼 비밀번호를 직접 알아내야 문제가 풀리는 구조였기 때문이다. org에서는 직접 값들을 일일이 입력해보는 방식으로 문제를 풀었는데 이번에는 파이썬으로 비밀번호를 알아낼 수 있게 코드를 작성해보기로 했다. * 알고리즘 및 코드 설명 org문제와 마찬가지로 코드를 보면 어떤 값이 참이 될 때 Hello admin이 나오는 것을 확인할 수 있다. 그래서 그때와 마찬가지로 우리가 특정 값을 url로 넣었을 때 Hello admin이라는 글자가 페이지에 나온다면 그 조건을 만족하는 것이므로 비밀번호를 유추할 수 있다. 이 성질을 이용해 우리가 넣은 조건이 참인지 거짓인지 판단한다. 우선 length함수를 통해 비밀번호의 길이를 알아내고..

[LOS] Wolfman 문제 풀이

문제 풀이 이 문제같은 경우에는 공백을 예외처리를 해놓아서 우리가 하던대로 공백을 이용해 쿼리를 더해주는 방법은 통하지 않는다. 근데 우리에겐 공백과 비슷한 기능을 하는 tab이 있다ㅎㅎ 공백 대신 tab (url encoding : %09) 을 입력하여 원래 하던대로 쿼리를 작성해주면 문제가 정말 간단하게 풀리는것을 확인할 수 있다.

[LOS] Goblin 문제풀이

문제 풀이 문제를 보면, id가 admin일때 문제가 풀리는것을 알 수 있다. 그래서 no=0처럼 임의의 값을 입력하고 뒤에 id='admin'이렇게 입력하면 6번째줄의 필터링에 의해 아래와같이 화면이 나오면서 '를 입력할 수 없게 된다. 그래서 찾아보니 SQL이 hex나 binary값으로 입력하면 문자열로 인식한다는 것을 알 수 있었다. 이를 이용해서 admin을 16진수로 바꾸면 '를 사용하지 않고 문자열로 인식하게 할 수 있으니 이것을 이용하면 문제가 풀릴것 같았다. 인터넷에 ASCII 코드표를 이용하여 admin을 16진수로 바꾸면 0x61646D696E가 되고, 이를 입력해주면 문제가 풀리게 된다!

[LOS] Gremlin문제풀이

문제 풀이 문제를 클릭하면 다음처럼 query문이 나오고, 그 아래 페이지에 대한 소스가 나온다. 코드에서 쿼리문을 보니 id와 pw를 get방식으로 입력받는것을 알 수 있었고, url뒤에 ?id=1&pw=1을 입력해보니 아래처럼 쿼리문이 바뀌어있는것을 확인하였고, 이를 조작한다면 문제가 풀릴것이라는 것을 알 수 있었다. 10번째 줄 코드를 보면 풀렸을 때 실행될 함수가 실행되는 조건을 알 수 있는데, id가 맞을 때 실행됨을 알 수 있다. 그런데 우리는 id값이 정확히 뭔지 모른다. 그리고 sql 쿼리를 자세히 보면 and로 논리가 연결되어있는것을 볼 수 있는데, 그렇다면 and와 or가 연결되어있다면...? 이라는 생각이 든다. or는 아무리 앞이 모두 거짓이어도 마지막이 참이 되면 모두 참이 되는 ..

반응형