목록전체 글 (248)
메모장 입니다2
https://velog.io/@woounnan
문제 갤러리가 있고 업로드 창이 있다. 풀이 문제 이름처럼 연속 확장자를 이용해 우회해준다. .php.png 순서이다. .passwd 파일을 찾아야 하는데 ../ 에도 .passwd가 있어서 cat해봤는데 권한 에러가 떴다.. 분명히 같은 권한인데;; 한참 삽질하다가 ../../../ 최상위를 확인해보니 거기도 .passwd가 잇다..
문제 로그인 페이지가 나온다. 로그인 로그가 출력되있다. admin이 로그인 했었다. 풀이 resources에 HTTP sumuggling이 나와있어서 관련 문제인줄 알았지만 아무리 고민해도 써먹을 상황이 아니었다. 관리자가 지속적으로 로그인 request를 요청하는 상황이라면 해당 request를 조작해서 response를 내 쪽에 보내는? 그런 말도안되는 망상을 해봤지만.. 관리자는 이후로 로그인 시도를 하지 않았다.. 로그 인젝션이었다 한참 고민하다가 로그 관련되서 취약점을 검색해보니 로그인젝션이 나왔다. 찜찜했지만 로그인젝션으로 admin authenticationed를 남겨주니 성공 알게된 것 HTTP Smuggling 프론트 서버(프록시) ---- 백엔드 서버로 구성되어있을 경우에 적용 가능한..
문제 로그인 페이지에 접속된다. 풀이 rootme에서 준 관련 resource를 보고 힌트를 얻었다. php에서 302 found는 제한된 페이지나 자원(또는 위치가 변경된)에 접근할 때 정상적인 페이지로 리다이렉션 시켜주는 반환코드인데 문제는 302 found를 반환시킬 때(리다이렉션 시키기 전), 원래 접근하려는 페이지의 내용을 response에 포함시킨다는 것이다. 또한, 302 found를 200 OK로 변경시켜주면 리다이렉션 되지않고, 제한된 페이지에 접근 가능하다는 내용이다. 해당 취약점 이름은 CWE-698: Execution After Redirect (EAR) 문제에서 제한된 페이지를 찾아야 한다. admin.php 등을 찾다가 not founded 라고 나와서, 페이지 값을 주지않고 디..
문제 해당 링크로 리다이렉트 되는 버튼이 주어진다. 풀이 버튼클릭시 url과 url의 해쉬값이 전달된다. 임의의 url과 hash를 만들어서 전송하면 플래그 값이 담긴 페이지가 responsd 되는데 바로 redirect되므로 proxy로 해당 response를 캡쳐해서 플래그 값을 확인한다.
문제 level 1 ~ 3 : 기본적인 스크립트 인젝션 level 4 시간값을 입력받고 그 값은 onload에서 사용자 정의함수인 startTimer를 호출하는 인자로 사용된다. 입력한 시간 후에 경고창이 뜨게하는 함수이다. onload에서 여러개의 명령문이 실행 가능하다는 점을 이용한다. onload('startTimer(); alert()') 이런 식으로 level5 가입버튼이 있는 페이지가 존재한다 get 파라미터로 next를 넘겨주는데 코드를 보면 next는 다음 페이지로 넘어가는 a href의 링크주소로 사용된다. 이 값을 javascript: alert()로 해주어 자바스크립트가 실행되게 만들어준다. level6 Loading gadget... ``` 특정 js 페이지를 로드한다..
문제 이전 csrf 문제와 동일하다 contact에서 토큰 검사가 추가되었다. 풀이 토큰 우회 시도를 해보았다. 토큰값 없애기 토큰값 바꾸기 안먹힌다. 관리자의 토큰을 받아야 한다. request 후에, response를 받고나서 후처리까지 할 수 있다면 관리자로 profile 페이지를 request 하게 만들고 이에 대한 응답에서 관리자의 토큰을 얻은뒤 해당 토큰으로 csrf를 수행하면 될 것이다. AJAX를 이용해서 코딩을 하자 코딩 시도 이유는 모르겠지만 동기방식으로 처리를 해야 request가 처리된다 jquery & ajax 이용 request는 되지만 response가 안받아와진다.. 포기 ajax 이용 ``` 알게된것 토큰 우회 in csrf 토큰값 삭제 동일한 길이의 임의 값으로 변경 다른..
문제 로그인 페이지 가입과 로그인이 있다 로그인 후 contact, profile, private가 존재한다. contact 페이지에서 메일주소와 내용을 입력하면 admin이 확인을 하며 XSS가 발생한다. profile에서 username에 대해 update 가능한데(아마 권한상승) admin만 가능하다. 내 계정을 update 시킨 후 private를 확인하면 될 것 같다. 풀이 contact페이지에서 XSS시켜서 admin으로 내 계정을 update 시키는 CSRF를 발생시키면 될것 같다. 페이로드 첫번째 innerHTML을 이용한 form data 삽입 document.body.innerHTML += ''; document.getElementById("dynForm").submit(..