본문 바로가기

wargame

(74)
los SKELETON los 10번 (SKELETION) 풀이 뒤에 쿼리가 ' and 1=0이 붙어 있습니다. 하지만 %23 (#)이 필터링이 되지 않는 것을 확인 할 수있습니다. 그러므로 우리는 %23 을 사용하여 뒤에 and 1=0을 주석 처리 하면 됩니다. pw=1' or id='admin' %23 이렇게 입력 해주면 해결 할 수 있습니다.
los vampire los 9번 (vampire) 풀이 8번과 매우 유사한 문제입니다. 이번에는 소문자 admin 이라는 단어가 나오면 ""로 치환해줍니다. 소문자 admin 만 필터링 하므로 아래와 같이 Admin 이라던가ADMIN 으로 우회 해주시면 됩니다. (대문자가 되는 이유는 php 단에서는 admin 과 Admin을 다르게 인식하지만 db 단에서는 동일한 단어로 인식하기 때문입니다.) ------------------------수정----------------------------- 위에서 설명한 내용은 str_replace라는 함수도 대소문자를 구분하기 때문에 admin과 Admin을 다른 문자로 해석합니다. 하지만 db 단으로 들어가면 동일한 문자로 인식하기 때문에 가능한 방법이었습니다. 추가할 내용은 str..
los troll los 8번 troll 풀이 troll 문제를 보시면 ' 와 를 필터링 합니다.admin 이라는 것을 단 순히 php ereg 에서 검사를 합니다.php에서 ereg는 대소문자를 구분하기 때문에admin과 Admin은 다른 문자로 인식합니다.db로 들어가면 admin 이나 Admin 같은 걸로 봅니다. 이렇게 Admin 이라고 입력해도 문제가 해결 됩니다. 아니면 ADMIN 이라고 입력해도 풀리네요
webhacking.kr 26번 문제 풀이 webhacking.kr 26번 문제 풀이 index.phps 를 확인합니다. Get 파라미터를 사용해서 id 값을 받습니다. 확인해 보면 admin 이라는 단어를 필터링 하고,urldecode 해서 값이 admin 이면 sovle를 줍니다. 하지만 영어와 숫자 들은 url encoding 을 해도 바뀌지 않습니다. 제가 여기서 해결한 방법은 핵스 인코딩을 하고 다시 url encoding을 하는 방법입니다. 일단 admin 을 hex encoding 하면%61%64%6D%69%6E입니다. (이걸 id 값에 넣어보면 no hack 이 뜨겠죠?) 즉 핵스로 변환해도 평문과 같은 역할을 한다는 겁니다.이걸 이요해서 헥스로 변환된 admin 값을 url encoding 해줍니다.%2561%2564%256D%2..
web hacking.kr 23번 문제 web hacking.kr 23번 문제 풀이 xss 를 하기 위해 확인하는 를 입력하는 문제입니다. 여러번 입력을 하다 보면 문자열이 입력 되면 no hack을 출력합니다.즉 일정 문자를 필터링 하는것이 아니라 문자가 이어져 나오는 즉 문자열을 필터링 한다는 것을 알 수 있습니다. 이 필터를 우회 하는 방법으로는 %00 이 있는데요 null 값을 문자와 문자사이에 넣어주면 됩니다.html 에서는 %00 을 인식 하지 못하고 필터에서는 %00 을 인식해서문자열이 아닌걸로 인식 하는것 같습니다. http://webhacking.kr/challenge/bonus/bonus-3/index.php?code=%3C%00%00s%00c%00r%00i%00p%00t%00%3E%00a%00l%00e%00r%00t%00(..
los orge los 7번 (oreg)풀이 입니다. 소스 코드의 필터링은 크게 or and 를 제외 하면 문제가 될 만한 것은 없습니다. 소스코드를 보면 첫번 째로 쿼리를 날려서 반환값이 참이면 해당 아이디를 출력해줍니다. 이 부분을 이용해서 blind sqlinjection을 시도하면 되겠습니다. 반환 값이 참이기 때문에 ('1') 게스트라는 아이디를 출력해 줍니다. (or 우회 ||) 앞의 (id='guest' and pw='1') 을거짓으로 판단하게하고 || 을 수행하는 쿼리문 입니다. 블라인드 인젝션의 한 방법으로 %를 이용 했습니다. 이렇게 한글자씩 유추해 가면서 pw를 찾으면 됩니다. 참고로 (pw는 8글자 입니다.) pw 8글자를 다 찾으셨으면 pw=에 넣어주시면 됩니다.(참고로 &&를 url에 입력할 때..
los darkelf los 6번 (darkelf) 풀이 쿼리를 분석해 보면 저번 문제들과 같은 유형이지만, 여기서는 or and를 필터링 합니다.google에 찾아보면 or 과 and를 우회 하는 방법이 나와 있습니다.저는 ||를 사용해서 or 을 우회 했습니다. pw=1' || 1%23를 입력해보면 Hello guest를 출력 합니다.그러므로 || 는 필터링 되지 않고 or로 인식된 겁니다. pw=1 || id='admin'이라고 입력 한다면 쉽게 풀립니다.
los wolfman los 5번 (wolfman) 풀이 쿼리를 해석해 보면 기존의 쿼리와 동일한데 공백을 필터링 하고있습니다.그러므로 공백을 우회 해야하는 문제 입니다. 공백을 위회하는 방법은 google에 검색 해보시면 여러 방식이 있습니다.대표적으로 + 가 있는데요 +는 해봤는데 안되더라구여 제가 성공했던 방법은 %09입니다%09는 hex로 tab 을 의미합니다.공백이 space만 되는 걸로 저는 생각했는데 ㅎ 텝도 되는 거 같습니다. (pw=-1 ' or id='admin) pw=-1%27%09or%09id=%27admin 공백을 %09로 바꾸어준 것입니다.