정보보안 및 해킹/CTF(40)
-
[Normaltic's CTF] SQL Injection Point 4
플래그를 찾으세요!이번엔 마이페이지입니다뭔가 바뀌었죠NO TEXT마이페이지 들어올 때 패킷은 어땠을까요?편하게 보기 위해 Repeater로 보냅니다.여전히 쿠키가 존재하네요. 과연 1번 문제와 동일한 것일까요?참인 조건. 결과가 나오는군요.거짓조건. 이것도 결과가 나옵니다. 하지만..조건을 전부 빼고 구문 에러를 내봤습니다.DB Error...뭔가 아련합니다.이걸 이용해서 참과 거짓을 알 수 있지 않을까 싶습니다일단 참인조건에서는 DB Error가 나는군요거짓조건에서는 데이터가 출력이 됩니다.왜냐면.. 애초에 넣은 select구문 자체가 에러를 유발하는 구문이기 때문에 참인 조건을 타서 해당 구문을 발동하게 되면 에러가 나기 때문입니다.마치 제가 따옴표를 하나 더 넣은 것 처럼요.그럼 해당 구문을 살짝 ..
2024.06.10 -
[Normaltic's CTF] SQL Injection Point 3
플래그를 찾으세요!웰컴~가입하고~ 로그인!이번에도 게시판입니다.두 개 써줍니다.sort.정렬입니다.order by구문을 사용하겠죠?일단 편리하게 Repeater로 보내줍니다. 숫자 넣어보니까 10까지는 정상 작동하는데11부터는 에러가 납니다. 컬럼 갯수가 10개인 것 같습니다.위의 절차는 해당 구문이 order by가 맞는지 확인한 절차입니다.order by에는 SQL Injection을 방어할 수 있는 Prepare Statement를 사용하지 못하기 때문에 취약합니다. 이번 공격에는 case when 구문을 사용합니다.case when (조건) then (참일때) else (거짓일 때) end이런 구문을 갖추고 있습니다.따라서, 어느 한 곳에 에러를 유발하는 데이터를 삽입하여 참과 거짓을 구분해서 b..
2024.06.10 -
[Normaltic's CTF] SQL Injection Point 2
플래그를 찾으세요!네!웰컴!똑같이 회원가입해주고.. 이번엔 게시판에 들어가줍니다.텅 비었습니다.글을 하나 써줍니다.심플하게..쓰면, 나타납니다.제목을 중심으로, yy를 검색하면, 작성한 글이 나옵니다.즉, 해당 SQL쿼리문은 like구문을 사용하고 있다는 것을 짐작할 수 있습니다.공격을 위해 Repeater로 보내줍니다.다시 한 번 확인해보고만약에 없는 글을 검색하면 어떻게 나오는지도 확인해줍니다.존재하지 않습니다. 라고 나오네요. 이게 거짓 조건의 결과인 모양입니다.사진을.. 안남겼네요. 검색창에서는 그 어떤 구문도 통하지 않았습니다. 그래서, 다른 곳을 공략하기 시작했습니다.바로, option_val입니다. 아까 보셨던, ' '을 중심으로 검색합니다 혹은 정렬합니다! 의 그것입니다.참인 조건을 넣었을..
2024.06.10 -
[Normaltic's CTF] SQL Injection Point 1
플래그를 찾아내자!심플하네요??? 심플하네요.....일단 로그인을 해볼까요..? 주어진 계정도 없으니.. 할 수 있을까요?다행히 회원가입 란이 있습니다. 회원가입을 해줍니다.회원가입 후에 로그인을 하니, 마이페이지, 게시판, 로그아웃이 나왔습니다.마이페이지부터 볼까요?있는 정보는 닉네임과 변경할 비밀번호 뿐이군요일단 마이페이지에 들어오면서 패킷이 어떻게 구성되어 있는지 살펴보겠습니다.쿠키가 있습니다! 제 닉네임으로 된 쿠키네요. 저걸 변조할 수 있지 않을까요?변조를 위해 Repeater로 보냅니다.우선 원래 닉네임일때 정보가 잘 나오고 있는 것을 확인하고..SQL Injection을 위해 ' and '1'='1 을 추가해봅니다.정보가 변하지 않네요. 그럼 거짓 조건을 한 번 넣어봅시다.거짓 조건을 넣으니..
2024.06.10 -
[Normaltic's CTF] SQL Injection 6
심플합니다.Flag Find.FF출발합니다. 로그인부터 고고302! index.php!이번엔 에러베이스드가 아니군요. 블라인드인 모양입니다.로그인의 쿼리문이 거짓일 시에는 Warning! Incorrect information이라는 문구가 도출되네요.우선 select가 필터링 되고있는지 확인 여부와, 참인 조건을 넣었을 때 통과가 되는지 여부를 한꺼번에 확인해보면,302! index.php! 동일하게 로그인 성공 결과값이 나옵니다.Database 첫 글자부터 시작하겠습니다.또 긴 여정이겠네요.Repeater로 보내고..Decoding을 하고..쿼리문이 참일 시에는 302가거짓일 시에는 200이 뜨는 것을 확인했습니다.첫 번째 글자는 115두 번째 글자는 113세 번째 글자는 108네 번째 글자는 105다..
2024.06.05 -
[Normaltic's CTF] SQL Injection 5
인내심을 가지라고 합니다. 블라인드인가..?일단 로그인을 해봅니다302! 리다이렉트입니다.index.php로 보내주는군요.혹시나 해서 싱글 따옴표 하나 붙여봤을 뿐인데...이거 왜 에러베이스드에요..?아니... 왜 인내심을 가지세요...?일단... 출발합니다.Database는 sqli_2_2라고 합니다.테이블 이름은 flagTable_this라고 하네요컬럼 이름은 flag인 모양입니다.....hi?어.. 플래그 찾으러 왔습니다..?왜 웃으세요 무섭게ㅖ?ㅋㅋㅋㅋ????????? 이 때 깨달았습니다.아........ 인내심을 가지라는게 이거구나.또 웃습니다.고고고스타크래프트 하는 줄 알았습니다.더 가라고합니다. 많이 온 것 같은데...예에???? 아니 여기까지왔는데요?????아 내쫒지 말라구요웃지도 말고표정..
2024.06.05