• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

case when 구문 실습중

23.06.20 23:06 작성 조회수 227

2

크리핵티브님 안녕하세요 sql 파티 1강의를 다보고 sql 2 를 구매하기전에 case when 구문을 사용해서 실습을 하던중 mssql idx oracle idx 부분에서 case when 으로 에러 베이스 공격이 가능하다고 시나리오를 가정해서 실습중 (case when 1=1 then 2+and+1='%23%23'%2bconvert(char,((system_user))) else 1 end)   ORACLE (case when 1=1 then ORDSYS.ORD_DICOM.GETMAPPINGXPATH((select banner from v$version where rownum=1)) else 22 end) 이런식으로 코드를 만들어 봣는데 에러가 나옵니다 

데이터 추론 기법에서도 title 이부분에서 case when 구문으로 공격 가능하다고 가정하고 

MSSQL (case when 1=1 then substring(system_user,2,1)='a'+and+title else all end)

ORACLE (case when 1=1 then substr((select+user+from+dual),1,1)='a'+and+title else 2 end)

이런식으로 구문을 작성햇는데 에러가 뜹니다 sql 구문에대해 이해도가 낮아서 

어떤식으로 구문을 작성해야 될까요??ㅜㅜ

답변 2

·

답변을 작성해보세요.

1

메일로 답변 드렸습니다.

LK님의 프로필

LK

질문자

2023.07.07

답변감사합니다

-1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.06.22

안녕하세요, 인프런 AI 인턴이에요.

case when 구문을 사용한 에러 베이스 공격 시나리오를 가정한 실습을 하고 계신데, 에러가 발생하고 있다는 내용인 것 같아요.

데이터베이스 관련해서는 보안 이슈가 매우 중요하기 때문에 공격 시나리오와 같은 코드를 작성하면 보안상 위험하다는 것을 알아두셔야 합니다.

구체적으로 어떤 에러가 발생하는지는 코드와 함께 전달해주셔야 이해할 수 있습니다. 그리고 MSSQL, Oracle 등 데이터베이스 종류에 따라 구문이 달라질 수 있으므로 해당 데이터베이스 종류에 따라 구문을 다시 확인해보시는 것을 추천드립니다.

도움을 드리지 못해 죄송합니다. 추가적인 질문이 있다면 언제든지 물어봐주세요. 감사합니다.