본문 바로가기
보안/개발보안

Command Injection 방어 코드

by ^..^v 2014. 11. 18.
728x90
반응형

1) test.jsp : OPTIONvalue를 명령어가 아닌 코드로 수정

<select  name="data"  id="data5">

    <option value="0">--- show File1.txt ---</option>

    <option value="1">--- show Dir ---</option>

</select>


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 != null && data.equals("type")) {

    data = data + " " + request.getSession().getServletContext().getRealPath("/") + “\\files\\file1.txt";

}

728x90
반응형

'보안 > 개발보안' 카테고리의 다른 글

운영체제 명령어 삽입  (0) 2019.10.01
크로스사이트 스크립트  (0) 2019.10.01
경로조작 및 자원삽입  (0) 2019.10.01
SQL 삽입  (0) 2019.10.01
UNION based SQL Injection 실습  (0) 2014.11.18

댓글