Web/Wargame
[WebGoat] Stage 3: Numeric SQL Injection
와븨
2024. 8. 25. 01:49
SQL Injection을 사용해서 권한을 우회하는 문제
일반 직원 Larry로 보스 Neville의 프로필을 확인해야 한다.
개발자 도구에서 password 입력칸을 보면, maxlength가 8로 설정되어 있다.
max_length를 늘려주고,
aa' or '1'='1 을 입력값으로 넣어 패스워드를 우회해서 Larry로 로그인해준다.
ViewProfile을 누를 때 버프 스위트로 인터셉트 해주면, employee_id와 action이 뜨는 것을 확인할 수 있다.
'Neville' 의 프로필을 확인해야 하기 때문에,
- employee_id 를 무조건적으로 참이 되게 하여 Larry의 권한으로 모든 정보를 열 수 있게 하고,
- Neville의 Profile을 출력하도록 해야한다.
이 때, Neville은 가장 마지막 순서에 있으므로, 출력 순서를 내림차순으로 바꿔주면 Neville의 프로필을 볼 수 있다.
or 1=1 order by employee_id desc
를 employee_id에 injection 하여 forward를 해주면,
Neville의 프로필을 볼 수 있다.