이번 포스팅은 10단계 스켈레톤 풀이이다.
사실 요즘 ppt만들고 발표하는 과제가 많아져서 블로그 포스팅할 시간이 없었다. (핑계)
과제가 정말 많다. 하지만 불굴의 의지를 가진 나를 아무도 막을 순 없으셈 다 안할래
포스팅 시작하겠다!
빠르게 코드부터 살펴보자.
보자마자 코드가 짧아 안심되었다.
주요한 코드를 살펴보자!
이 코드에서 특별한 점은, pw 값을 받고 난 후 and 1=0 이라는 구문이 조건이 더 붙은것이다.
평소 해왔던대로 pw를 닫고 or 연산자를 써서 id='admin' 을 추가하면 될 것 같다.
하지만 ?pw=' or id='admin' 만 써넣는다면 and 1=0 때문에 결과값이 나오지 않는다.
and보다 or가 우선 순위가 더 낮기때문이다.
and 부터 처리된다는 사실을 기억하고 문제를 푸는 것이 좋을 듯 하다.
자, 그럼 문제를 풀어보자!
스켈레톤 문제는 전에 나왔던 주석풀이 문제를 조금 더 응용하면 될 문제이다.
풀이 버전은 두가지가 있는데
1. 주석을 사용해서 and 1=0 부분 없애기
2. 주석 안쓰고 and 1=0 앞에 아무 값이나 넣고 or id='admin' 넣어서 참 만들기
정답을 원한다면 아래 클릭!
주석처리를 한 버전이다.
?pw=' or id='admin'%23
이렇게 쿼리의 뒷부분 전체를 주석처리 하여 결과를 참으로 만든다.
주석을 쓰지않은 버전이다.
?pw=' or id='admin' or 1='1
우리가 값을 넣어주면 뒤에 싱글쿼터가 하나 붙기때문에
1='1 이런식으로 값을 넣어줘
결국 1='1' 쿼리로 만든다. 뭐 사실 id='admin' or 뒤에는 참이든 거짓이든 상관없이
아무 값이나 들어가면 된다. or보다 and 연산자가 우선 순위가 더 높기때문에
and 뒤의 1=0 때문에 무조건 거짓이 되기 때문이다!
'Archive > Hacking' 카테고리의 다른 글
Lord of SQL Injection 12단계, darkknight풀이 (0) | 2019.11.07 |
---|---|
Lord of SQL Injection 11단계, golem풀이 (0) | 2019.11.07 |
Lord of SQL Injection 9단계, vampire풀이 (2) | 2019.10.31 |
Lord of SQL Injection 8단계, troll풀이 (0) | 2019.10.30 |
Lord of SQL Injection 7단계, orge풀이 (0) | 2019.10.30 |