문제 화면입니다.
첫 번째 필터링에선 /prob _ . 을 필터링 합니다.
두 번째 필터링에선 ' \를 필터링 합니다.
여기서 중요한 건 필터링이 2개로 나뉘어져 있고
두 번째 필터링을 거치기 전 결과를 확인할 수 있기 때문에
싱글 쿼터를 사용할 수 있다는 점입니다.
이 때 time based injection을 사용할 수 있습니다.
sleep 함수와 if 문을 활용해 pw를 알아낼 수 있습니다.
익스 코드는 위와 같이 작성할 수 있습니다.
if 문의 조건이 참이면 sleep 함수가 실행됩니다.
파이썬에서 time 모듈의 elapsed.total_seconds() 메서드를 활용하면 해당 코드의 실행 시간을 알 수 있습니다.
아래 실행 결과를 보면 pwLen이 8일 때 값이 2가 넘어가는 것을 볼 수 있습니다.
이를 활용해서 pw의 각 bit별 length 및 pw를 구할 수 있습니다.
이제 pw를 넣어주면
문제가 풀렸습니다!
'write-up(web) > LOS' 카테고리의 다른 글
[Lord of SQLInjection] phantom write-up (0) | 2022.09.21 |
---|---|
[Lord of SQLInjection] frankenstein write-up (0) | 2022.09.19 |
[Lord of SQLInjection] red_dragon write-up (0) | 2022.08.09 |
[Lord of SQLInjection] green_dragon write-up (0) | 2022.08.06 |
[Lord of SQLInjection] evil_wizard write-up (0) | 2022.08.04 |