write-up(web)

[Webhacking.kr] old-40

문제 문제풀이 /?no=1&id=guest&pw=guest no=1 : success no=0 : 변화X 그 외 : Failure no=0||1=1 입력 시 success 화면이 출력되는 것으로 보아 no을 이용해서 관리자 계정을 알아낼 수 있을 것 같다. no, id, pw 값의 끝에 각각 #을 넣고 확인하면 no 값에 넣었을 때만 success가 뜨며, 쿼리문의 순서 마지막이 no인 것으로 유추할 수 있다. &&는 &로 인식하기 때문에 %26로 우회해야 한다. 여러가지를 입력해봤을 때, 공백, and, or, char 등 access denied 되는 것을 확인할 수 있고, admin 문자 대신 0x61646D696E 사용할 수 있다. no=0||id=0x61646D696E 입력 시, 아래 화면을 확..

[Webhacking.kr] old-38

문제 admin 문자열을 입력하면 오른쪽 위와 같이 뜬다. 문제풀이 index.php 코드를 보면 아래와 같은 메시지가 있다. admin.php 페이지를 접속하면 아래와 같은 로그를 확인할 수 있는데, 내가 입력한 문자열들이 기록된다. "admin" 문자열이 입력되어야 문제가 해결될 것 같은데 admin을 입력하면 "you are not admin"이 뜨고, --, #, ', %0a, %0d는 문자로 인식된다. log injection을 하는 두가지 방법이 있는데, 첫번째 방법은 HTML 태그를 이용하는 방법이다. input 태그를 textarea 태그로 변경하여 줄바꿈이 가능하게 하여 IP주소:admin을 입력하면 된다. 두번째 방법은 burpsuite를 이용한다.

[Webhacking.kr] old-37

문제 view-source 문제풀이 코드를 살펴보면, tmp/tmp-{$time}의 파일 내용을 host로 하여 7777 포트로 접속하고, flag 값을 전송한다. 이전 문제와 비슷하게 7777 포트를 포트포워딩 아래와 같이 해준다. netcat을 이용하여 7777 포트를 열고, 파일 내용에 host 주소를 작성하고, 파일 제목을 tmp-{$time}로 하여 타이밍에 맞춰서 업로드 하면 플래그값을 확인할 수 있다.

[Webhacking.kr] old-36

문제 vi 에디터로 index.php 파일을 편집하던 중, 코드가 사라졌다는 의미이다. 문제풀이 스왑파일(.swp)은 파일을 편집하다가 예기치 않게 종료된 경우 또는 사용 중에 또 다른 사용자가 접근하려는 경우에 생성된다. .원본파일명.swp 형식으로 생성되며, 숨김파일이다. index.php의 스왑파일은 .index.php.swp이며, https://webhacking.kr/challenge/bonus-8/.index.php.swp에 접속하면 파일이 다운로드 된다. Hex Fiend 에디터로 열어보면 마지막 부분에서 flag를 확인할 수 있다.

[Webhacking.kr] old-32

문제  맨 아래로 내리면 자신의 계정도 볼 수 있으며, Hit 숫자가 100이 되면 문제가 풀릴 것 같다. 문제풀이 클릭하면 hit 파라미터에 NAME이 넘겨지며, Hit 숫자가 올라간다. 쿠키는 다음과 같이 설정된다. 쿠키를 삭제하고 다시 클릭하면 Hit 숫자가 올라가며, 다시 vote_check 쿠키가 생성된다. 쿠키를 삭제하고 클릭하고 삭제하고 클릭해서 100까지 만들면 문제가 해결되는데, 번거롭기 때문에 코드를 작성해서 풀면 된다. import requests url='https://webhacking.kr/challenge/code-5/?hit=닉네임' cookie={'PHPSESSID':'쿠키값'} for i in range(99): res=requests.get(url, cookies=co..

[Webhacking.kr] old-31

문제 10045 포트번호가 새로고침 할 때 마다 변경되는 것을 볼 수 있다. 문제풀이 rand 함수를 이용해 10000 ~ 10100 사이의 임의의 난수를 포트로 설정하고, fsockopen 함수로 지정된 포트에 접속을 시도하고 있다. 이 때 포트가 열려있으면 접속이 가능하다. 공유기를 사용하고 있기 때문에 10000 ~ 10100 범위를 다음과 같이 포트포워딩 해준다. netcat을 이용해 포트를 열어놓고 페이지를 재접속하면 플래그를 얻을 수 있다.