강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

photic님의 프로필 이미지
photic

작성한 질문수

모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1

[실습2-1] 취약점 분석 실습 도중에 질문있습니다 !!

해결된 질문

작성

·

218

2

idx 와 title 를 이용하여 참 거짓 판단하는 조건문 말고 참이면 정상출력되고 거짓이면 에러 발생하는 방법 직접연구해보라구 하셨는데요 !

에러대신 sleep 함수로 참 거짓 판별해도 괜찮은건가요 ? 에러가 뜨는 방법은 고민해두 안나와서요 ㅜㅜ..

부족한질문에 답변 미리 감사드립니다..

board/mysql/index.php?sort_column=(case when 1=2 then idx else sleep(5) end)

 

 

답변 1

1

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

안녕하세요.

시간 지연도 하나의 방법이 될 순 있습니다.

그러나, DBMS가 MySQL일 경우에 해당하며,

MSSQL과 ORACLE일 경우는 다른 방법을 고민 해봐야겠죠 ㅎ

물론, MSSQL과 ORACLE도 시간 지연도 가능하긴하지만 추천하지는 않습니다.

 

photic님의 프로필 이미지
photic
질문자

강사님 ㅜㅜ

mysql 같은 경우는

(case when 1=2 then 1 else (select 1 union select 2) end)&sort=desc

union 으로 참일땐 1행으로 정상결과 뜨고

1=2 거짓일때는 select2 구문으로 행 반환 2이상이라 오류 구문뜨는것 체크했는데요 !

oracle 이나 mssql 에서는 힘든 방법인가요 ? 오라클은 같은 구문을써도 테이블 명을 달라구 하네요..!

어렵네요 ㅠㅠ..

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

맞습니다. 이런 방식으로 접근하시면 해결책을 찾으실거에요 ㅎ

강의 내용 중에도 있긴한데 오라클은 select 절 사용시 반드시 from절을 요구합니다.

때문에 dual이라는 더미 테이블을 사용해주셔야 합니다.

photic님의 프로필 이미지
photic

작성한 질문수

질문하기