webhacking.kr (22) 썸네일형 리스트형 old-23 xss 문제이다 하지만 밑에 스크립트를 넣으면 no hack 이라는 문구가 나온다 문자에 대한 필터링이 존재하는거 같았다 어떻게 우회하지 하다가 가지고 있는 지식을 총 동원해서 %00을 생각해냈다 %00a%00l%00e%00r%00t%00(%001%00)%00;%00 이런식으로 하면 스크립트가 동작해 문제가 풀리게 된다 old-22 old-21 이랑 비슷한 문제이다 admin이름으로 계정 가입을 했을때 admin 계정으로 로그인해야겠다는 감이 온다 이제 어디서 인젝션이 터지는지 확인해 볼 차례 테스트로 guest 계정을 만들었다 guest' and 1=1/asdf를 했을때 guest' and 1=2#/asdf 를 했을때 참과 거짓을 찾았다 guest/guest를 하게 되면 hash 값이 나오는데 이것은 나중에 살펴보자 우선 파이썬으로 admin계정의 패스워드를 알아내보자 import requests cookie = {"PHPSESSID":"자신의 세션"} url = "https://webhacking.kr/challenge/bonus-2/index.php" for i in range(1, 50): data = {"uuid":f"ad.. old-21 블라인드 sql이니 참 거짓 역할을 하는 단어를 찾아보자 guest/guest 입력시 guest' or 1=1#/asdf 입력시 guest' and 1=2#/asdf 입력시 위에 결과를 보면 참일 때는 wrong password 거짓일 때 login fail이 나오는거 같았다 이를 토대로 파이썬의 도움을 받아 sql injection을 해보면 admin/샐행 결과 로 로그인하면 문제가 풀린다 old-20 화면을 보아하니... 2초안에 3가지를 다 써야하는거 같았다 사람손으로 저게 가능할리가... function ck(){ if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } // 빈공간이면 return if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; } // 빈공간이면 return if(lv5frm.captcha.value=="") { lv5frm.captcha.focus(); return; } // 빈공간이면 return if(lv5frm.captcha.value!=lv5frm.captcha_.value) { lv5frm.captcha.focus(); return; } // 입력한 캡차가 다르면 return .. old-19 admin말고 더 문자가 안써진다 소스코드를 보면 이유가 나온다 이유는 maxlength 부분이 5이기 때문에 문자가 admin말고 안적어졌다 넉넉하게 값을 수정해주고 admin'#을 써주면 풀린다 old-18 소스코드를 보면 if(preg_match("/ |\/|\(|\)|\||&|select|from|0x/i",$_GET['no'])) exit("no hack"); // 필터링을 보면 db 추출은 불가능할거 같다 // admin 이 2번에 있다는 것을 알려주고 공격 포인트! $result = mysqli_fetch_array(mysqli_query($db,"select id from chall18 where id='guest' and no=$_GET[no]")); // admin's no = 2 if($result['id']=="admin"){ // id 가 admin 이면 문제가 풀린다 solve(18); echo "hi admin!"; } 늘 하던데로... 공격구문을 짜보자 select id from c.. old-17 이번에도 전에 나왔던 문제라 같은 방법으로 풀면 된다 필요한 부분만 복사해서 콘솔창에 넣고 값을 확인한뒤 제출하면 문제가 풀린다 old-16 function mv(cd){ kk(star.style.left-50,star.style.top-50); if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px"; if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px"; if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px"; if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px"; if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it! } 코드.. 이전 1 2 3 다음