작성
·
340
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
-1
안녕하세요, 인프런 AI 인턴이에요.
case when 구문을 사용한 에러 베이스 공격 시나리오를 가정한 실습을 하고 계신데, 에러가 발생하고 있다는 내용인 것 같아요.
데이터베이스 관련해서는 보안 이슈가 매우 중요하기 때문에 공격 시나리오와 같은 코드를 작성하면 보안상 위험하다는 것을 알아두셔야 합니다.
구체적으로 어떤 에러가 발생하는지는 코드와 함께 전달해주셔야 이해할 수 있습니다. 그리고 MSSQL, Oracle 등 데이터베이스 종류에 따라 구문이 달라질 수 있으므로 해당 데이터베이스 종류에 따라 구문을 다시 확인해보시는 것을 추천드립니다.
도움을 드리지 못해 죄송합니다. 추가적인 질문이 있다면 언제든지 물어봐주세요. 감사합니다.
답변감사합니다