SQL Injection/LoS

LoS Chapter 21 - iron_golem

ragdo11 2022. 11. 18. 18:34

21번째 iron_golem. 인사를 잘 안해주기 시작한 시점이 여기 였었나..

sleep, benchmark를 막아서 time based를 못하게 했다. time sqli도 곧 작성할 예정!!

인사를 하는게 문제 풀이에 어떤 이점이 있나를 살펴보면 참과 거짓에 따라 화면에 출력이 바뀌기 때문에 자신의 쿼리가 어떻게 작동했는지를 알 수 있게 해준다. 그럼 인사를 안하면? 내가 작성한 쿼리가 맞는건지 틀린건지 알 수가 없다. 다만 여기서는 mysql error로 문제 풀이에 힌트를 주고 있다.

updatexml로 xpath 오류를 한 번 시험해 보는 나. 물론 여기선 의미 없다. 시스템 db에 접근조차 못할테니

이 문제를 풀기 위해서는 어떠한 조건에 의해 어떨 때는 잘 작동해야 하고, 어떤 때는 오류가 나야 한다.

감이 좋은 사람들은 알겠지만 참인 쿼리를 넣어주었을 때는 잘 작동하게, 거짓인 쿼리를 넣어주었을 때는 오류가 나면 blind sqli로 풀 수 있다.

조건 분기는 역시 조건문으로 하는게 최고다! if문을 사용해서 쿼리가 참일 때는 에러가 나지 않게 거짓일 때는 에러가 나게 쿼리를 작성해준다.

subquery 에러로 참이 아닐 때는 에러가 똭! 뜨게! 거짓문에 xpath 에러를 넣으면 안 된다. xpath는 조건 실행되기 전에 에러문 출력함.

자동화 코드로 쓱 싹 해보면??

이번엔 비밀번호가 무척 길군.