본문 바로가기
728x90
반응형

개발보안28

경로조작 및 자원삽입 외부 입력값을 검증, 제한하지 않고 서버 자원의 식별자로 사용하는 경우 발생 → 의도하지 않은 자원 생성 및 참조가 발생 → 정상적인 서비스 실행을 방해하거나 시스템 장애를 유발 → 파일 자원인 경우 지정한 경로 밖(=권한 밖)의 파일에 접근이 가능 = 경로조작 [방어기법] 자원 식별자를 미리 정의하고 정의된 범위 내에서 사용할 수 있도록 제한한다. = 화이트 리스트 방식의 입력값 제한 외부 입력값을 내부 처리에 직접 사용하지 않고, 내부에 정의된 값을 맵핑하는 용도로 사용 ⇒ 캡슐화 및 입력값 제한을 동시에 제공 외부 입력값이 파일 경로로 사용되는 경우, 경로 조작 문자열( . .. / \ ) 포함 여부를 확인 후 사용할 수 있도록 한다. 다음 진단결과의 정오탐 여부를 판정하고 판정근거를 기술하시오. .. 2019. 10. 1.
SQL 삽입 외부 입력값에 쿼리 조작 문자열 포함 여부를 확인하지 않고 쿼리문(SQL) 생성 및 실행에 사용하는 경우 발생 → 쿼리문의 구조와 의미가 변형되어서 실행 ⇒ 권한 밖의 데이터에 접근이 가능 ⇒ DBMS 서버의 제어권 탈취 ⇒ 쿼리 실행 결과를 우회한 처리 [대응방안] 정적쿼리를 사용(실행) = PreparedStatement 객체를 사용 = 구조화된 쿼리 실행 = 파라미터화된 쿼리 실행 동적쿼리를 사용해야 하는 경우, 입력값 검증 후 사용 = 쿼리 조작 문자열 포함 여부를 확인 후 사용 애플리케이션에서 사용하는 DB 사용자의 권한을 최소로 부여 → Stored Procedure를 이용한 SQLi 공격 또는 Union-Based SQLi 공격을 완화 오류 메시지에 시스템 정보가 노출되지 않도록 통제 → E.. 2019. 10. 1.
Command Injection 방어 코드 1) test.jsp : OPTION의 value를 명령어가 아닌 코드로 수정 --- show File1.txt --- --- show Dir --- 2) TestController : 사용 가능한 운영체제 명령어를 화이트 리스트로 정의, 전달받은 코드에 해당하는 명령어만 실행String data = request.getParameter("data");String[] allowCommand = { "type", "dir" };try { data = allowCommand[Integer.parseInt(data)];} catch (NumberFormatException e) { buffer.append("허용되지 않은 요청입니다."); return buffer.toString();}if (data != n.. 2014. 11. 18.
UNION based SQL Injection 실습 http://testasp.vulnweb.com/showforum.asp?id=0 필드 개수 확인http://testasp.vulnweb.com/showforum.asp?id=0 order by 1 --http://testasp.vulnweb.com/showforum.asp?id=0 order by 2 --http://testasp.vulnweb.com/showforum.asp?id=0 order by 3 -- è The ORDER BY position number 3 is out of the number of items …버전 확인http://testasp.vulnweb.com/showforum.asp?id=0 and 1=2 union select @@version, 2-- è Microsoft SQL.. 2014. 11. 18.
728x90
반응형