2024. 5. 29. 13:30ㆍ정보보안 및 해킹/CTF
비밀 데이터가 로또 번호면 좋겠습니다.
시작합니다..
어떤 게임의 랭킹 시스템인 것 처럼 보입니다.
일단 a라고 검색을 해보니,
a라는 글자가 포함된 것들이 전부 도출되고 있습니다
여기서 Like 구문을 사용하고 있다는 것을 알 수 있습니다.
그리고 a로 시작하거나 a로 끝나는 것이 아니라 중간에 낀 것이니,
%a나 a%가 아니라 확실하게 %a% 라는 것을 알 수 있게 되었습니다.
그러면 SQL Injection이 통하는지 확인하는 구문도 달라져야겠죠?
구문은 다음과 같습니다.
%' and '1%' = '1
현재 상상하고 있는 구문이
SELECT * FROM ? WEHER ?='%[input]%'
이기 때문에, 그 안에 넣어준다면
SELECT * FROM ? WEHER ?='%%' and '1%' = '1%'
이런 구문이 완성됩니다.
위의 구문으로 검색을 했음에도 검색이 잘 되는 걸 보니, SQL Injection이 되는 것을 확인할 수 있습니다.
그럼 바로 union 공격을 위해 컬럼 갯수를 알아보러 갑니다.
4줄이 도출되고 있기 때문에 일단 4줄부터 시작합니다.
5줄은 결과값이 나오지 않는 걸 보니, 이 서버에서는 데이터를 전부 보여주고 있었음을 확인할 수 있습니다.
그럼 어디가 어느 자리인지 확인하기 위해 1 2 3 4로 각 컬럼의 위치를 확인해줍니다.
차례대로 들어가있네요.
일단 데이터베이스 이름부터 뽑아봅니다.
어차피 4개의 컬럼 모두 드러나 있기 때문에, 어디에서 도출을 시켜도 상관 없습니다.
데이터베이스 이름은 sqli_1입니다.
바로 테이블 이름을 알아보러 갑니다.
테이블이 3개네요
flag_table, plusFlag_Table,user_info
우선 flag_table부터 확인해봅시다.
flag_table에 어떤 컬럼이 있는지 확인해봅니다.
flag라는 컬럼이 있습니다.
flag_table의 flag컬럼에는 어떤 값이 있을까요?
짜잔 플래그가 있습니다.
하지만 아까 플래그 테이블이 하나 더 있었죠?
plusFlag_Table이라고..
근데 이거 직접 여쭤보니까 짜가라고..
일단 데이터를 뽑아봅니다.
플래그가 나왔습니다.
근데... 여태까지 나왔던 플래그와는 형태가 조금 다릅니다.
'정보보안 및 해킹 > CTF' 카테고리의 다른 글
[Normaltic's CTF] SQL Injection Practice 1 (0) | 2024.05.29 |
---|---|
[Normaltic's CTF] SQL Injection 2 (0) | 2024.05.29 |
[Normaltic's CTF] Secret Login (0) | 2024.05.29 |
[Normaltic's CTF] Login Bypass5 (0) | 2024.05.29 |
[Normaltic's CTF] Login Bypass4 (0) | 2024.05.29 |