목록Webhacking (13)
controlpro

다음과 같다 . 일단 source부터 보자 일단 문제를 보면 Iv값을 GET하고 Iv값을 가공하는데 공백은 없고 / , * , %를 없앤다. 그리고 select 0x limit cash i 값을 가지고 있으면 exit되서 소용이 없다. 결국에는 id와 cash값을 가져오기 위해서 lv값을 admin값으로 세팅해야한다. admin을 우회하면 될거같다. /?lv=1 %26%26 id=char(97,100,109,105,110) url에 입력해주면 끝..

문제를 풀어보자 문제를 보면 처음부터 딱히 할 수 있는게 업는데 source를 봐보자~! 문제가 다음과 같은데 결국 문제를 풀려면 query로 받아온 값의 0번째 값이 2가 되어야 한다. 그래서 그냥 go를 입력할 수 있으니까(val통해서) 그러면 rand 함수의 한가지 경우를 예상해서 val=0)union(select(char(50)))을 입력하면 모든 필터링을 제치고 답을 얻는 데 성공할 수 있다.

다음과 같이 문제가 있다. 뭘해야하지... 라는 생각에 F12 눌러서 source code를 봤다. time limit : 2 second nickname comment captcha 다음과 같다. 중요한건 ck 함수인데, id(nickname) , cmt(comment) , captcha를 입력하지 않으면 입력 커서가 각 입력창으로 가고 captcha와 captcha_가 같으면 submit을 수행한다고 한다. captcha_값이 무엇인가? 라고 생각했었는데. 이 값이고 이 값을 입력하면 되서 엄청 쉬울줄 알았는데 , time limit이 걸려있어서 아쉬운 내 영타로는 2초안에 입력이 불가능하다. 그래서 F12누르고 console창에 다음과 같이 입력을 해주었다. 그리고 F5를 누르고 호다닥 입력을 해주..

문제를 보면 다음과 같이 나온다. readme를 클릭하면 access denied라고 뜨고 hi~를 클릭하면 다음과 같이 나온다. 사실 search에 무엇을 넣어야할지 몰라서 sql injection을 시도해보다가 flag를 입력해봤는데 원래 반응과 다르게 나왔다. 갑자기 Board에 admin이 써졌다. flag랑 관련이 있구나 싶어서 guest는 hi~파일이 보이니까, guest로 test를 진행했다. 똑같이 hello~라는 것을 보내주면 다음과 같이 나오는데 hello , hell , hel , he , h를 보내도 guest는 항상 Board에 있는 것으로 보아, *붙어서 저 글자가 순서대로 있으면 다 출력을 하는 것 같다. 그러면 아까 flag를 보냈을 때도 이해가 가능하다. 그러면 search..

문제에 대놓고 Blind sql injection이라고 나와있다. 내가 Lord of sql injection에서 굉장히 많이 풀었기 때문에 익숙한 문제이다. 입력값에 따라 달라지는 반응을 토대로 이게 참 값인지 거짓 값인지 구분 하는 것이다. 일단 입력값에 따라 다른 값을 찾아야 한다. 아무거나 입력해보자 일단 아무거나 입력을 하면 다음과 같이 뜬다. login fail. 그러면 내가 sql injection으로 항상 참이되는 값을 입력을 하면 어떻게 될까? 다음과 같이 입력을하면 (id = admin pw =) or '1' = '1' 과 같이 다음과 같이 쿼리가 들어가서 참이 된다. (or 뒷부분이 항상 참이므로) 이것을 입력을 하면 다음과 같이 wrong password라고 나온다!!! 그러면 참은..

내가 풀었던 문제 중에는 제일 어렵고 점수도 높은 문제이다. 350점 마지막 if문을 보면 다음과 같은 구문이 있는 데 $q=mysqli_query($db,"insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest')") or die("query error"); 이 구문을 해석을 해보자면, chall8이라는 table에 agent, ip ,id에 agent와 ip guest라는 것을 입력하겠다는 것이다. 이 문제를 해결하기 위해서는 $result = mysqli_query($db,"select id from chall8 where agent='".addslashes($_SERVER['HTTP_USER_AGENT'])."'"); 이 구문을 해석을 ..

다음과 같은 문제인데 LOG INJECTION문제이다. LOG injection문제를 처음인데, admin.php가 있어서 봤는데 여기서 admin.php에 들어가보면 이런 식으로 나오는데, admin으로 로그인을 하란다;; 그래서 어캐 할지 몰라서 Login입력창을 막 넣어보고 다시 admin.php 들어가보니까 이런식으로 나오는데 , [내 IP] : [입력값] 이런 식으로 구성된다. 그러면 내가 입력하는 곳에서 \n문자를 넣어주고 [내 IP] : admin이런식으로 써주면 되겠다. 이런식으로 입력하면 아까 login 창에 Enter를 입력할 수 있다. hihih [IP] : admin이렇게 입력해주면 문제가 풀린다.

맨날 Los 만 하다보니까 질려서 다른 wargame site를 탐방 해보겠다. 문제부터보자! 문제가 굉장히 긴데 문제의 핵심을 보면 decode_id = "admin" 과 decode_pw = "nimda" 라는 것을 만족 시켜야한다. 맨위에서 부터 보면 id = guest 와 pw = 123qwe를 20번 base64코딩을 해주고, 그 base64인코딩 한 값을 특정한 문자열을 바꿔주는 과정을 거친다. 그래서 거꾸로 생각을 해보면 admin값을 20번 base64인코딩을 해주고 특정한 값을 대칭 시켜주면된다는 것이다. Editthiscookie를 이용해서 user와 password값을 바꿔주면 된다. 코드는 간단하다. import base64 import sys def pwd_replace(num):..