Web/Lord of SQLInjection

    cobolt

    이번에도 GET으로 값을 전달해주는군요. 이전 문제와 다른 점이라고 한다면 역시 pw 부분에 들어가 있는 md5() 함수일 것입니다. md5는 hash 함수의 일종으로 매우 취약한 것으로 알려져 있습니다. md5() 라는 함수는 php에서 제공하는 함수지만 취약점이 알려진 경우는 md5('어떤 문자열', True) 경우뿐입니다. 그래서 저는 아예 pw 부분을 검사하지 않게 만들고 싶었죠. 그래서 주석문을 사용해 아예 무시해주도록 했습니다. 물론 밑에 id 조건에 의해 id는 admin 으로 전달해주고요. 더보기 * 다음에 주의하며 주석문을 써봅시다. (둘 다 가능합니다.) 통과!!

    gremlin

    처음 들어가서 본 문제는 다음과 같이 php 코드가 주어졌습니다. 일단 정답을 전달하는 방법은 GET이군요. ?id=(answer)&pw=(answer) 이런 식으로 전달해주면 되겠습니다. 이번 문제는 간단하게 '연산자 우선순위를 이용해서 풀어주면 됩니다. and 가 or 보다 우선순위가 높으니 and를 검사하고 or을 연산하게 될 것입니다. 그래서 ?id=wow&pw=wow' or '1'='1 을 해주게 되면 select id from prob_gremlin where id='wow' and pw='wow' or '1'=1' 이렇게 전달됨으로써 id와 pw 부분이 틀려서 0이 되더라도 뒤쪽 or이 참이기 때문에 최종적으로 조건문은 참이 되게 됩니다. PASS!