728x90
반응형
1. intro
2. code 및 분석
2.1. code
xss-1과 다른 부분은 아래 한 곳이다.
@app.route("/vuln")
def vuln():
return render_template("vuln.html")
2.2. 분석
xss-1과 동일하지만, 이번에는 받아들인 값을 바로 인자로 사용하지 않는다는 점이 차이점이다.
3. 취약점 확인 및 공격 준비
3.1. 취약점
xss
3.2. 공격 준비
우선 vuln 페이지로 들어가봤더니 param이 alert를 실행하도록 되어있으나 반응하지 않는 것을 볼 수 있다.
이는 곧 <script>가 제대로 삽입되지 않는다는 것인데, 아무래도 문자열 필터링인 것 같다는 생각이 들었다.
테스트해보니 <s, </s, +가 필터링된다는 것을 알 수 있었다.
그래서 우회 코드를 조금 찾아보던 중
img src와 더불어 error 처리를 하는 onerror는 사용 가능함을 확인하였다.
4. exploit
<img src onerror='location.href="/memo?memo="+document.cookie'>
또는
<img src onerror='location.href="/memo?memo=" %2b document.cookie'>
다만 의문점은, +가 필터링되는 것으로 확인 했는데, 실제 공격 시에는 +가 그대로 적혀있어야 된다는 점...
왜지...?
728x90
반응형
'Wargame > Dreamhack' 카테고리의 다른 글
csrf-2 (0) | 2023.05.21 |
---|---|
csrf-1 (0) | 2023.05.19 |
xss-1 (0) | 2023.05.18 |
cookie (0) | 2023.05.18 |
session-basic (0) | 2023.05.18 |