[Lord of SQLinjection] orc write-up
미리 말씀드립니다만 이 문제는 Blind SQL injection 문제입니다. 문제를 풀이할 때 물론 하나하나 전부 찾아보는 방법이 있지만 매우 귀찮겠죠?? 그러니 코드를 작성하여 문제를 푸는것을 추천드립니당.
LoS 4번 orc 문제입니당. 문제 데이터베이스에 공격을 가하지 않는 이상 딱히 필터링을 안합니다만...
id가 admin이라도 pw가 정확한 pw가 아니라면 문제를 풀어주지 않고 그냥 Hello admin만 출력하네요. Blind SQLi 문제 라는 것을 알 수 있습니다.
그렇다면 pw를 하나하나 알아가는 방법밖에 없습니다. pw에 대한 정보를 알기 위해 length 함수를 이용해 pw의 길이를 알아 내고, substr 함수를 이용해 한글자 한글자 찾아 가는 방법 밖에 없습니다. pw 길이는 그냥 값 적당한거를 생각해 > 연산자를 이용하여 대충 빠르게 구할수가 있습니다만, substr함수를 이용해 한글자씩 찾는것은 0~9, a~z, A~Z까지 하나하나 다 찾아봐야 하므로 시간이 매우 오래 걸릴것으로 예상할 수 있습니다. 그래서 python으로 빠르게 코드를 작성해 풀어주도록 합시다. 먼저 pw의 길이를 알아냅시다. 이것저것 트라이한 결과로는
8이 길이였군요. 그러면 이제 코드를 대충 작성해 풀어봅시다. 저는 requests 모듈을 사용하여 풀이하였습니다.
requests 모듈의 사용법에 대해서는 다른 좋은 정리된 글이 많으니 참고하시면 될 것 같습니다. 이 코드를 한번 실행해 보면,
이렇게 admin의 pw값이 나오게 됩니당 ~_~ 아까 코드에서 보면 pw값을 다시 다른 쿼리에 넣어 pw 파라미터에 넣은 값이 admin값의 pw값과 같으면 문제를 솔브한다고 나왔으니 이 값에서 대문자를 소문자로 바꾼 후 대입해 본다면
ORC 문제가 클리어 된다고 한다. 끝!