728x90
반응형
1) test.jsp : OPTION의 value를 명령어가 아닌 코드로 수정
<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 |
댓글