본문 바로가기

Web Hacking/Webhacking.kr

(25)
[Webhacking.kr] old-39 write up 입력폼이 하나 주어진다. 소스코드를 살펴보자. 사용자 입력값을 받아와 DB에 쿼리문을 날리고 있으며 '1'을 조회하고 있다. 해당 쿼리문에서 1이 조회되면 문제는 풀린다. 따라서 우리는 해당 쿼리문이 참이 되도록 해주면 된다! 필터링 부분을 보자. 역슬레쉬, 싱글쿼터를 필터링 하고 있고 substr함수를 이용해서 15자리 까지만 자르고 있다. 역슬레쉬는 빈칸으로 사라지나 싱글쿼터는 하나가 두개로 대체되고 있다. 쿼리문을 다시 보면 id부분에 사용자 입력값 앞에 싱글쿼터가 하나 붙어 있다. 우리는 admin을 입력하고 싱글쿼터를 닫아주기만 하면 문제를 해결할 수 있다. 싱글쿼터가 두개로 대체되나 15자리까지만 사용자 입력값이 잘리기 때문에 마지막에 입력하면 싱글쿼터를 하나만 입력을 할수가 있다. admin..
[Webhacking.kr] old-06 write up 코드가 꽤 길다 천천히 살펴보자. user 쿠키가 설정되어 있지 않으면 새로운 쿠키를 설정한다. id, pw라는 이름의 변수를 선언한다. id: guest, pw: qwe123이다. 해당 값들을 다음과 같은 연산을 거쳐 암호화하여 user와, pw 쿠키에 값으로 설정한다. 다시 값들을 복호화하여 echo해주고 있다. 만약 복호화한 값이 id가 admin pw가 nimda이면 문제가 해결된다. 위 암호 로직을 통해 admin, nimda를 암호화하여 쿠키를 설정해주면 해결된다. 위 코드를 그대로 복사해 이용하기 위해 php로 해결했다.
[Webhacking.kr] old-15 write up 문제 접속 시 바로 alert()가 실행되며 Webhacking.kr 메인화면으로 리다이렉션 된다. 터미널에서 curl로 요청 후 응답을 받아봤다. flag가 ?getFlag로 접근 시 존재한다고 써 있다.
[Webhacking.kr] old-17 write up 입력폼이 하나 존재한다. 소스코드를 살펴보자. 폼의 사용자 입력값이 unlock과 같을 경우 문제가 해결 된다. 파이썬을 이용해서 unlock을 구해봤다.
[Webhacking.kr] old-14 write up 입력폼이 하나 존재한다. 소스코드를 보니 제출버튼을 누르면 script에 정의된 ck 메소드가 실행된다. ck메소드는 현재 웹페이지의 URL을 가져와 .kr의 인덱스를 반환해 *30 후 사용자 입력값과 비교한다. 이때 같으면 문제가 해결된다. https://webhacking.kr/challenge/js-1/ .kr의 위치는 18번째이므로 540을 입력한다.
[Webhacking.kr] old-42 write up 문제에 접속해보니 위와 같은 UI가 보인다. 소스코드를 살펴보자. test.txt의 버튼을 누르면 어떤 리소스에 접근하여 파일을 다운로드 하는 것 같지만, flag.docx는 alert()를 실행시킨다. test.txt를 눌러보니 예상대로 다운로드가 된다. test.txt의 리소스 url을 보면 "?down=dGVzdC50eHQ=" 에 접근하고 있다. 가만보니 "=" 패딩때문에 base64 같아서 디코딩을 해봤다. 반대로flag.docx를 base64 인코딩해서 리소스에 접근해봤다. flag 파일이 다운로드 됐다
[Webhacking.kr] old-01 write up uesr_lv 쿠키를 1로 설정해주고 화면에 출력하고 있다. 만약 쿠키값이 3 ~ 4의 사이값이라면 문제는 해결된다. 개발자 도구의 Application탭에서 쿠키를 변경해준다.
[Webhacking.kr] old-16 write up 작은 별? 꽃?이 존재한다. 소스코드를 살펴보니 키보드 입력에 따라 어떤 행동을 처리하고 있다. 이때 키보드 입력 값이 124일때를 주의깊게 봐야한다. location.href함수로 페이지를 이동 시키고 있다. 아마 문제 해결이 될거 같다. 124는 '|'를 의미하므로 파이프를 입력하면 문제가 해결될거 같다.