Wargame Site
-
|webhacking.kr| #27Wargame Site/Webhacking.kr 2019. 7. 8. 08:23
no 이 1 일 때 guest 라는 문구를 확인할 수 있다. 소스보기를 통해서 index.phps 의 존재를 알았으니, 접근해서 소스를 파악해보자. 괄호가 쌓여있고, ) 가 필터링되지 않기 때문에 일단 닫고 시작해야한다. 그리고, 마지막에 닫혀있는 괄호를 주석처리해야할 것이다. 주석에는 ;%00, %23, -- 등이 있다. 이 중에 -- 를 사용했다. 그렇게 완성된 Query 는 " no=0)||no>1-- - " 이다. Clear!
-
|webhacking.kr| #25Wargame Site/Webhacking.kr 2019. 7. 7. 23:12
ls -l 의 결과를 나타낸 듯한 출력문이 보인다. file 에 hello 를 넣어주었을 때, hello.txt 가 실행되는 것을 보니 + .txt 가 되어있는 것 같다. 그렇다면 password.php 를 보기 위해서 어떻게 해야할까? SQL injection 밖에 할 줄 모른다는 생각밖에 안들었다..ㅜㅜ 바로 구글링을 해서 %00 널 바이트를 사용하면 되는 것을 알아냈다. SQL 말고도 다양한 취약점을 접해봐야 할 것 같다.
-
|webhacking.kr| #22Wargame Site/Webhacking.kr 2019. 7. 7. 11:54
다음과 같은 화면이 나오고, 아래의 코드를 조금만 분석해보면 admin 의 password 를 맞춰야할 것 같다는 생각이 든다. 바로 회원가입으로 들어갔다. 당연히 admin 으로 가입할 수 없었고, 그냥 jeju / sarang 으로 회원가입을 했다. 정상적으로 로그인을 해보면 다음과 같은 화면이 나온다. https://md5decrypt.net/en/#answer Md5 Decrypt & Encrypt - More than 10.000.000.000 hashes md5decrypt.net 키길이를 보니 MD5 와 관련이 있는 것 같았다. Password + zombie 의 값이 MD5 와 되어 나타나는 것을 알았다. 이제 본격적으로 SQL injection 을 시작해봅시다. 1. Query 의 결과가..
-
|webhacking.kr| #21Wargame Site/Webhacking.kr 2019. 7. 6. 20:39
다음과 같이 column 의 형태를 input 태그의 name 들로 설정하여 힌트를 주었다. 그렇다면, id 와 pw 칼럼을 탐색해보도록 하자. 이전의 1000 점 짜리 문제와 별반 다를 게 없는 문제이다. no 이 1 일 때, 2일 때를 제외하고는 False 혹은 값이 뜨지 않는 것을 알 수 있다. 그리고, 앞선 문제들에서 no 이 가지는 속성을 잘 이용하면 된다. no 은 상수를 받기 때문에 '' 로 둘러 쌓여있지 않기 때문에 다짜고짜 injection ( ' 를 닫아주지않아도 됨 )을 실행해도 된다. ?no=if(ord(substr(id,1,1))={},1,0) 혹은 ?no=if(ord(substr(id,1,1))={},2,0) 이렇게 탐색할 때 두 계정의 id 를 모두 구할 수 있다. 아래와 같은..
-
|webhacking.kr| #20Wargame Site/Webhacking.kr 2019. 7. 6. 14:15
위의 칸에 빈칸이 없어야하며, 코드 값을 알맞게 넣어주어야 한다. 시간제한이 2초이고, javascript Challenge 라는 점을 감안할 때, 이는 Script 코드를 짜야한다는 느낌이 온다. 위의 조건들을 만족시키는 코드를 구성해보자. lv5frm.id.value=1; lv5frm.cmt.value=1; lv5frm.hack.value=lv5frm.attackme.value; lv5frm.submit(); 창이 열리고 바로 이것을 입력해주면 Clear