
문제 파일을 읽기 전에 먼저 문제 환경에 접속하였다.

이와 같이 나와있는데 추측상 sql 문을 조작하여 admin으로 로그인하여 flag를 얻게 되지 않을까라는 생각이 든다.
여기서 error based sql injection이기 때문에 억지로 error를 일으켜서 flag를 구하도록 만들면 되는데.. 그걸 이제 어케하냐고
가 아닌^^ 하나하나 차례대로 해보자
먼저 드림핵에서 앞서 학습한 extractvalue 함수를 이용해보았다.
공격 페이로드: admin' AND extractvalue(1,concat(0x3a,(SELECT upw FROM user WHERE uid='admin'))) #

잘려서 나온다!! 이유가 뭐지 하고 찾아보니 32바이트로 길이제한이 있는 함수이기 때문이었다.
따라서 substr() 또는 substring()으로 여러번 나누어 출력해주어 플래그를 확인해야 한다. 32바이트가 넘지 않게 설정하였다.
보완 페이로드: admin' and extractvalue(1,concat(0x3a,(SELECT substr(concat(0x3a,upw),20,40) FROM user WHERE uid='admin')));#

이렇게 51에서 잘린 부분부터 플래그를 잘 조합하면 우리가 찾는 flag를 구할 수 있게된다.