본문 바로가기

Wargame(hacking)/webhacking.kr

(51)
Webhacking.kr : old-50 Write-Up
Webhacking.kr : old-8 Write-Up
Webhacking.kr : old-35 Write-Up phone :
Webhacking.kr : old-53 Write-Up
Webhacking.kr : old-55 Write-Up 문제에 접근하면 초록 몬스터가 등장하며, 마우스에 따라 움직인다. 해당 게임이 Game Over 가 되면 alert()가 발생하고, form 데이터가 전송이 되는 것을 볼 수 있는데, 나의 score 값이 POST request 되는 것을 볼 수 있다. ( 아래와 같이 Game Over가 되도록 js 코드를 조작하였다. ) if(1) {alert('GAME OVER'); sfrm.submit(); } rank.php에 접속해 보자! 여기서는 score에 따른 ranking 점수를 볼 수 있다. 위 그림 2에서 score에 점수를 넣어 전송하면 rank DB에 반영이 된다. 그 이유는 아래 mysql_query에서 확인할 수 있다. ( 내가 입력 한 score=33을 rank page에서 ..
Webhacking.kr : old-46 Write-Up 위의 필터링을 볼때, 공백, % 가 필터링 되어 있어 어떻게 우회를 할지 고민이 좀 됬었다. 우선, SQL Injection 가능성을 파악해본다. ( 물론, 문제 페이지에 대놓고 SQL Injection이라 적혀있긴 하지만.. 말이다. ) lv 를 보면, 숫자로 이루어진 컬럼이란 것을 알 수 있고, lv = 2-1 과 같이 query를 보냈을 때, lv = 1로 계산되어 query가 동작하게 되어, 값이 정상적으로 출력된다. 이제 공백을 어떻게 우회해야 할지 고민해야 한다. %09,%20등 과 같은 형태는 %가 필터링되어 안된다.('%'가 필터링 되어 안되는 것이 아닌, 공백이 필터링 되어 안됨) 그래서 괄호를 사용하기로 했다. 먼저 아래와 같은 payload를 요청해보았다. /?lv=(..
Webhacking.kr : old-05 Write-Up 처음 페이지를 보면, Login 과 join 버튼이 있다. 하지만 join 버튼 클릭 시, 엑세스가 거부된다. Login 버튼 클릭 시, challenge/web-05/mem/login.php 위 URL로 이동되며, 로그인 페이지를 볼 수 있다. 위 그림 1과 같이 다양한 SQL Injection 시도를 했는데, 먹지 않았다. 아래 같은 Time based 도 안된다. 'or 1=1 AND if(1=1,sleep(10),false)# 'or 1=1 AND if (1=1) waitfor delay '0:0:10'# 'or 1=1 AND if 1=1 then BEGIN dbms_lock.sleep(10); END; end if--+ 현재 challenge/web-05/mem/login.php..
Webhacking.kr : old-49 Write-Up level :