xss-1 문제

일단 메인 화면이다.
각 페이지가 무슨 기능인지 알아보기 위해 코드를 보겠다

vuln페이지 이다
param 값을 받아와서 그대로 반환하는 페이지 인것같다.

flag 페이지 이다


이것은 flag 페이지 에서 사용된 check xss 함수와 read_url 합수 이다
flag 페이지는 쿠키와 함께 param 값을 보내는 페이지 인것 같다.

memo 페이지이다
memo 페이지는 말 그대로 memo 값을 받아와서 그대로 보여주는곳 인것같다.
풀이
일단 계획은 flag 페이지에서 vuln페이지를 이용해 memo 페이지에 memo 값을 쿠키로 해서 보내는것이다
그래서 flag 페이지에서 <script>location.href = "/memo?memo=" + document.cookie; </script> 문을 작성 하였고

그 결과 이렇게 flag가 출력 되는것을 볼 수있다
xss-2 문제

이번에는 xss - 2 문제인데 언뜻 보기에는 xss-1과 비슷해 보인다
마찬가지로 코드도 매우 비슷한데

vuln 페이지의 반환값이 조금 다르다
xss-1에서는 그대로 반환 해주었다면
xss-2에서는 reder_template 함수를 사용하여 반환 하고 있다

render_template로 랜더링되는 html을 뜯어보니
innerhtml을 사용 하고 있다.
-> 즉 script태그는 사용을 할 수가 없다
풀이
그래서 이번에는 풀이법을 조금 바꾸어
script 태그 대신 html 태그 중 하나인 img 태그를 사용하기로 했다.
<img src="xss" onerror="location.href='/memo?memo=+'document.cookie;"> 를 사용 해보았다
내가 주입 할 코드를 해석해보면 이미지 가 실행 되지 않으면 memo에 memo값을 쿠키로해서 방문해주세요 이다.
당연히 이미지 소스를 xss로 햇으니 정상적으로 실행 될리가 없다.

그러면 이렇게 정상적으로 flag가 출력되는 것을 볼 수 있다.
csrf - 1 문제

일단 메인 화면이다
이것도 역시 코드를 뜯어보겠다

vuln 페이지 에서는 xss를 막아놓았다 (근데 너무 허술해서 잘만 하면 될것 같기도 하다)

다른 곳은 memo도 뭐 그대로 memo 기능을 하는 애이고
주의 깊게 봐야 할곳은 이곳이다
admin notice flag 즉 어드민이면 flag를 준다는건데
admin인지 확인하는 방법이 너무 허술하다
그냥 userid가 admin인지만 단순하게 확인한다( 위에 로컬도 확인하는데 내 컴퓨터라 상관 x )
풀이
<img src="/admin/notice_flag?userid=admin">
그래서 간단히 admin notice flag 페이지로 이동하며 userid를 admin으로 만들어주었다
잠깐
왜 아까 xss-2 문제는 onerror를 썼는데 이번에는 그냥 src에 넣어도 되는걸까?
아까는 분명 src에 넣기만 했을때는 되지 않았다
이유 : onerror가 없으면 script문을 사용 할 수가 없다.(즉 document.cookie를 사용 할 수가 없다)
근데 csrf에서는 굳이????? document.cookie등의 스크립트 문을 사용할 필요가 없다
이어서 가보면

이렇게 flag가 정상적으로 잘 출력이 된다!
csrf - 2 문제

일단 메인 화면이다.
코드를 보겠다.

계정 두개가 보인다
아마 어드민 비밀번호 위치쪽에 flag가 써져있는 걸로 보아
admin 으로 로그인을 성공 하기만 하면 flag를 줄것같다

XSS를 막아놨다

로그인 화면이다 user[username]이라는 것으로 검증 하는듯 하다

오 아까 검증을 하던 user[username]을 pw로 바꾸는것 같은데
잘만 조작하면 내 입맛대로 바꿀 수 있을것 같다
마찬가지로 flag 페이지에 가서 좀 뭔가를 해보겠다
풀이
<img src="/change_password?pw=1"> 라는 문장을 넣어 주었는데
그냥 img 태그로 change_password 엔드포인트로 가는 길에 pw를 1로 바꾸는 그런 문장이다
이후에는 id에 admin, password에 1을 넣어주었더니

정상적으로 간단히 flag가 나오게 된다.
'web > 웹 해킹' 카테고리의 다른 글
| baby-union 문제 풀이 + 여러 sql injection 방식 (0) | 2025.11.08 |
|---|---|
| simple_sqli_chatgpt 문제 풀이 (0) | 2025.11.06 |
| BypassIF 문제 풀이 (0) | 2025.11.06 |
| sqli, command injection 문제 풀이 (1) | 2025.11.05 |
| Cookie, session 문제 풀이 (0) | 2025.11.01 |