문제의 소스 코드입니다.
만약 id 값이 존재하면(쿼리의 결과가 참이면) Hello admin이 출력됩니다.
두 번째로 쿼리의 결과 값이 존재하면서 pw가 실제 데이터베이스의 pw값이랑 일치할 때 문제가 풀립니다.
blind sql injection을 통해서 pw 값을 찾아서 값을 넣어줘야 합니다.
pw에 임의의 값을 넣어서 false로 만들고 다른 조건을 뒤에 넣은 뒤 or로 연결시켜줍니다.
뒤의 조건이 true가 되면 Hello admin이 출력됩니다.
먼저 pw의 길이를 구한 뒤
1문자씩 무작위 대입을 통해 pw를 알아내겠습니다.
먼저 pw의 길이를 length() 함수를 통해 알아냅니다.
그런 뒤 substr() 함수를 통해 첫 번째 문자부터 1개씩 가져와서 무작위 대입으로 값을 알아냅니다.
만약 id를 'admin'으로 지정해주지 않으면 다른 계정의 pw를 검색하게 됩니다.
실행 결과 pw를 알게되었습니다.
해당 값을 url로 던져주면
문제가 풀립니다.
'write-up(web) > LOS' 카테고리의 다른 글
[Lord of SQLInjection] darkelf write-up (0) | 2022.07.30 |
---|---|
[Lord of SQLInjection] wolfman write-up (0) | 2022.07.30 |
[Lord of SQLInjection] goblin write-up (0) | 2022.07.30 |
[Lord of SQLInjection] cobolt write-up (0) | 2022.07.30 |
[Lord of SQLInjection] gremlin write-up (0) | 2022.07.30 |