보안
어려움
이론
웹 취약점 분석 보고서
웹 애플리케이션 보안 취약점 분석
45분
85점
#3746
문제 설명
주어진 웹 애플리케이션 코드에서 보안 취약점을 찾고 수정 방안을 제시하세요.
분석 대상 코드
// 로그인
app.post("/login", (req, res) => {
const { username, password } = req.body;
const query = `SELECT * FROM users WHERE username="${username}" AND password="${password}"`;
db.query(query, (err, user) => {
if (user) {
req.session.user = user;
res.redirect("/dashboard");
}
});
});
// 프로필 조회
app.get("/profile", (req, res) => {
const userId = req.query.id;
const user = db.query(`SELECT * FROM users WHERE id=${userId}`);
res.send(`Welcome ${user.name}
`);
});
// 파일 다운로드
app.get("/download", (req, res) => {
const filename = req.query.file;
res.download(`./uploads/${filename}`);
});
// 비밀번호 변경
app.post("/change-password", (req, res) => {
const newPassword = req.body.password;
db.query(`UPDATE users SET password="${newPassword}" WHERE id=${req.session.userId}`);
res.send("Password changed");
});
분석 항목
- OWASP Top 10 취약점
- 인증/인가 문제
- 입력 검증
- 세션 관리
제출물
- 발견된 취약점 목록
- 위험도 평가 (CVSS)
- 공격 시나리오
- 수정된 코드