해당 사이트는 아이디와 비밀번호를 작성하면 해당 계정에 관한 정보를 표시해주는 사이트입니다
GET 방식으로 서버로 요청을 진행하고있습니다
이전에 했던 방식에서는 로그인 폼에서 SQL 인젝션을 진행했지만 여기서는 URL을 통해서 진행했습니다
ORDER BY절 이란?
URL에 보여지는 username 변수에 ' order by [Column Number] #을 추가해서 접속합니다
order by절을 이용하여 현재 데이터베이스의 열의 개수 파악이 가능해집니다
또한 데이터베이스에서 진행하는 것이 아니기 때문에 URL을 이용하기 위해 URL 인코딩이 필요합니다
해당하는 아이디 정보와 비밀번호 그리고 서명을 확인할 수 있습니다
이제 다중실행을 위해 union문을 사용합니다
첫 번째 SQL문은 username과 password를 가지고 사용자 정보를 출력해줍니다
두 번째 SQL문을 통해 우리가 원하는 행동을 하기위해 UNION을 사용합니다
위에서 5개의 열이 존재하는것을 확인했습니다
화면에서는 2, 3, 4가 표시되고있습니다
2, 3, 4를 조작하여 우리가 원하는 정보를 추출할 수 있습니다
먼저 데이터베이스 이름, 로그인한 사용자 이름, 데이터베이스 버전을 추출했습니다
데이터베이스는 owasp10을 사용하고 있으며 root 계정으로 로그인하였고 데이터베이스 버전 또한 확인할 수 있습니다
각 사용자들은 자신만의 데이터베이스를 가지고 있으므로 실제 시나리오에서는 관리자로 로그인되는 일이 없을 것입니다
데이터베이스 이름 : owasp10
계정 : root
버전 : 5.0.51a