2024. 6. 10. 18:02ㆍ정보보안 및 해킹/CTF
플래그를 찾으세요!
웰컴~
가입하고~ 로그인!
이번에도 게시판입니다.
두 개 써줍니다.
sort.정렬입니다.
order by구문을 사용하겠죠?
일단 편리하게 Repeater로 보내줍니다.
숫자 넣어보니까 10까지는 정상 작동하는데
11부터는 에러가 납니다. 컬럼 갯수가 10개인 것 같습니다.
위의 절차는 해당 구문이 order by가 맞는지 확인한 절차입니다.
order by에는 SQL Injection을 방어할 수 있는 Prepare Statement를 사용하지 못하기 때문에 취약합니다.
이번 공격에는 case when 구문을 사용합니다.
case when (조건) then (참일때) else (거짓일 때) end
이런 구문을 갖추고 있습니다.
따라서, 어느 한 곳에 에러를 유발하는 데이터를 삽입하여 참과 거짓을 구분해서 blind 공격을 할 수 있습니다.
case when (1=1) then 1 else (에러를 유발하는 데이터) end
이렇게 사용할 것 입니다.
일단 참의 조건에서 결과가 어떻게 조출되는지 확인합니다.
거짓 조건에서 다르게 나오는지 확인합니다.
select 구분이 필터링 되고 있는지 여부와 에러를 잘 유발하고 있는지를 확인합니다.
이제 공격 시작합니다 Database()부터 시작합니다.
첫 번째 글자는 115
두 번째 글자는 113
세 번째 글자는 108
네 번째 글자는 105
다섯 번째 글자는 95
여섯 번째 글자는 56입니다.
sqli_8
테이블 이름입니다.
첫 번째 글자는 102
두 번째 글자는 108
세 번째 글자는 97
네 번째 글자는 103
다섯 번째 글자는 95
여섯 번째 글자는 84
일곱 번째 글자는 97
여덟 번째 글자는 98
아홉 번째 글자는 108
열 번째 글자는 101 입니다.
flag_Table
컬럼 이름입니다.
첫 번째 이름은 102
두 번째 이름은 108
세 번째 이름은 97
네 번째 이름은 103
다섯 번째 이름은 68
여섯 번째 이름은 97
일곱 번째 이름은 116
여덟 번째 이름은 97입니다.
flagData
플래그가 나왔습니다.
휴 3번째 되니까 힘드네요
'정보보안 및 해킹 > CTF' 카테고리의 다른 글
[Normaltic's CTF] XSS 1 (0) | 2024.06.25 |
---|---|
[Normaltic's CTF] SQL Injection Point 4 (0) | 2024.06.10 |
[Normaltic's CTF] SQL Injection Point 2 (0) | 2024.06.10 |
[Normaltic's CTF] SQL Injection Point 1 (1) | 2024.06.10 |
[Normaltic's CTF] SQL Injection 6 (0) | 2024.06.05 |