본문 바로가기

웹해킹

(23)
2025년 1학기 웹해킹 4주차(드림핵) 함께 실습 일단 엔드포인트 /vuln과 /memo는 각각 다음과 같다.@app.route("/vuln")def vuln(): param = request.args.get("param", "") return param@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", "") memo_text += text + "\n" return render_template("memo.html", memo=memo_text, nonce=nonce)엔드포인트:/flagdef read_url(url, cookie={"name": "name", "value": "value"}): cookie.upda..
2025 1학기 4주차 웹해킹(natas) 13>>14방식은 지난 방법과 비슷하다. 이번엔 gif의 시그니쳐코드를 앞에 넣어준다.GIF89a  그리고나서 버프스위터를 하면 이렇게 된다. 저기서 404어찌구jpg를 php로 바꾼다 저걸 누르면 이렇게 나온다 GIF89a z3UYcr4v4uBpeX8f7EZbMHlzK4UR2XtQ13>>14  그냥 로그인을 누르면 이렇다  소스 코드를 보면 이렇게 생겼다sql관련 문제이다 빈 칸에" or 1=1 # 를 넣으면 다음 단계로 가는 비밀번호가 나온다.   SdqIqBsFcz3yotlNYErZSZwblkm0lrvx natas15  아무거나 누르고 엔터를 치면 다음과 같이 나온다 소스코드를 보니 이런 식으로 뜨는데... 내가 뭔가 쓰라는 것 같기도 하다 버프스위터로 일단 확인해준다import sockethost..
2025년 1학기 웹해킹 3주차(natas) 11>12 저기서 파일 선택을 누르니 이렇게 뜬다  아무것도 안 누르고 upload를 누르니 이런다 코드 내용을 보자면 이렇다. 만약 무언가를 올리면 확장자가 jpg로 변경된다. 그러므로 파일 확장자 필터링 우회, 파일 크기 제한 우회를 하거나 해야한다. 그동안 패스워드는etc/  natas_webpass/natas숫자에 있었으니 이번에도 그렇다고 생각해보자  natas는 php로 만들어져있으니 php언어로 만들어준다.   버프 스위터를 키고 확인해보면 이렇게 자기마음대로 파일 이름이 바뀌고 jpg가 되어있다  혹시 모르니 파일 크기도 키워놓고 다시 php로 만든다   그럼 이렇게 뜬다 누르면 이렇게 비밀번호가 나온다trbs5pCjCrkuSknBBKHhaBxq6Wm1j3LC 12>>13잘 들어가진게 확인된다
2025년 1학기 웹해킹 3주차(드림핵) Content Security Policy Content Security Policy는 간단하게 말해서 CSP, 컨텐츠 보안 정책이라고 부른다. CSP는 XSS나 데이터를 삽입하는 류의 공격이 발생하였을 때 피해를 줄이고 웹 관리자가 공격 시도를 보고 받을 수 있도록 새롭게 추가된 보안 계층이다. XSS 공격은 브라우저가 서버로부터 전달받은 컨텐츠를 신뢰한다는 점을 이용한다면 CSP는 이를 방지하기 위해 웹 페이지에 사용될 수 있는 자원의 위치, 출처 등에 제약을 걸 수 있다. XSS공격이 브라우저가 서버로부터 받은 컨텐츠를 그대로 받아들인다면 CSP는 그렇지 않다는 뜻이다. 그럼 xss대신 csp만 쓰면 되는 건가 싶지만 그건 아니다. xss가 병행되어야 한다.  CSP 헤더는 1개 이상의 정책 지시문..
2025년 1학기 웹해킹(natas) 10>11일단 저대로 그냥 눌러봤을 때는 아무런 변화가 있지 않았다xor로 보호된다고 한다  코드를 보자면 이렇다버프스위터로 해보니 이렇게 생겼는데 일단 쿠키 값이 저렇다 key값이 eDWo같다  그럼 이렇게 뜬 걸 볼 수 있다  yZdkjAYZRd3R7tq7T5kXMjMJlOIkzDeB  11>12
2025 1학기 웹해킹(드림핵) Exercise: XSS Filtering Bypass 엔드포인트: /vulnvuln함수는 이용자가 전달한 param 파라미터의 값을 출력한다.@app.route("/vuln")def vuln(): param = request.args.get("param", "") param = xss_filter(param) return param xss_fillter는 취약점을 막는다.def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): text = text.replace(f, "") return text 엔드포인트: /me..
2025년 1학기 웹해킹 1주차(드림핵) XSS필터링의 배경 초기에 비해 HTML문법은 매우 복잡해지고 정교해졌다. 방어의 방법의 수 보다 공격의 방법의 수가 훨씬 빠르게 증가하고 있기에 안전하다고 알려진 방법만을 사용해야 한다.  이벤트 핸들러 속성대표적으로 on으로 시작하는 속성이 있다. 이벤트 핸들러의 종류는 매우 많으며 자주 사용되는 이벤트 핸들러 속성으로는 onload, onerror, onfocus가 있다.  문자열 치환script 라는 키워드를 제거하는 방식의 필터링이 적용되어있다면, scrscriptipt와 같이 제거되는 키워드를 중간에 삽입한다. 이 경우 중간에 삽입된 키워드가 제거되면서 다시 원본 키워드를 만들어내는 방식으로 우회할 수 있다.  대응 방안으로  문자열에 변화가 없을 때까지 지속적으로 치환하는 방식이 사용된다. ..
2025 1학기 웹해킹 1주차(natas) 8>>9 들어가면 이런 화면이 뜬다아무거나 눌렀더니 이런 식으로 떴다view sourcecode를 하면 이런 사진이 보인다 이 부분이 대강 키값이 맞으면 출력하고 아니면 사전 속 내용을 출력하는 그런 것 같다. passthru()는 찾아보니 php의 내장함수라고 하며 exec()나 system()함수와 사용법이 비슷한 듯 하다. 빈칸에 입력을 할 때 앞 뒤로 ;를 붙여줘야 한다.;cat /etc/natas_webpass/natas10;를 입력해주면 아래와같이 나온다. t7I5VHvpa14sJTUGV0cbEsbYfFP2dmOu 9>>10들어가면 이런 화면이 나온다 key값이 아닐 때의 내용이 바뀐 것 같다;과 같은 게 입력되면 잘못됐다고 출력되는 것 같다아까처럼 입력하면 문제가 생긴다는 뜻이다 . /etc..
겨울 웹해킹 6주차 2>>3들어가면 이렇게 생겼다이렇게하면 비밀번호를 찾을 수 있다 3>>4 들어가보면 이렇게 생겼다새로고침을 하면 이렇게 된다 버프스위터로 Refere부분을 다음과같이 바꾼다 그럼 이렇게 나온다 natas5 is 0n35PkggAPm2zbEpOU802c0x0Msn1ToK
겨울 웹해킹 5주차 0처음 화면에 나오는 아이디와 비밀번호에 Natas0을 입력해준다그럼 이렇게뜨는데 하얀 부분에 검사를 하면 비번이 나온다0>>10단계에서 얻은 비번으로 로그인한다 이번에는 우클릭이 안 먹혀서 f12키로 검사자 창을 연다그럼 비번이 나온다. 1>>2들어가면 이렇게 생겼다검사를 누르면 이번엔 다음과 같이 pixel.png가 보인다원래 url뒤에 file을 붙이면 위와 같이 이동할 수 있다저기서 user.txt를 눌러서 비번을 찾는다 natas3:3gqisGdR0pjm6tpkDKdIWO2hSvchLeYH