2019/10/01
[webhacking.kr 2019 old] - challenge 18
[webhacking.kr 2019 old] - challenge 18
2019.10.01sql injection 문제이다. 소스 보기를 하면 몇몇개의 문자들이 필터링 되어 있다.
[webhacking.kr 2019 old] - challenge 17
[webhacking.kr 2019 old] - challenge 17
2019.10.01이번 문제는 입력하는 곳이 주어지고 마찬가지로 javascript로 값을 비교하여 어떤 곳으로 요청을 보내는 문제이다. 아래 코드는 문제 내에 있는 javascript 문제이다. unlock=100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+1/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10+100*10*10+1..
[webhacking.kr 2019 old] - challenge 16
[webhacking.kr 2019 old] - challenge 16
2019.10.01이번 문제의 html 코드를 보면 아래와 같이 javascript 코드가 있는 것을 볼 수 있다. document.body.innerHTML+="*"; 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,..
[webhacking.kr 2019 old] - challenge 14
[webhacking.kr 2019 old] - challenge 14
2019.10.01이번 문제는 뭔가를 입력하는 곳이 있다. html 코드를 보면 javascript 코드로 어떠한 행위를 하는데, 아래 코드를 보자. function ck(){ var ul=document.URL; ul=ul.indexOf(".kr"); ul=ul*30; if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; } else { alert("Wrong"); } } ul 값과 사용자가 입력한 값이랑 비교해서 같으면, GET 방식으로 요청을 보낸다. 간단하게 크롬 콘솔창에서 ul 값을 확인해 보겠다. var ul=document.URL; ul=ul.indexOf(".kr"); ul=ul*30; console.log(ul); 위 코드를 실행해보면..
[webhacking.kr 2019 old] - challenge 10
[webhacking.kr 2019 old] - challenge 10
2019.10.01위 문제의 소스 코드중 중요한 부분만 가져오면 아래와 같다. a 태그를 클릭하면 onclick 액션이 실행되는데, 왼쪽으로 1px 만큼 움직인다. 이 값이 1600px 이면 GET 방식으로 요청을 보낸다. O 이 문제를 풀기 위해서는 풀이 법이 다양하겠지만, 필자는 그냥 style 값에서 left 값을 1599px 값으로 수정한 후 a 태그를 클릭했다. 그럼 left 값은 1600px가 되고 조건에 맞게 되므로 문제가 풀리게 된다.
[webhacking.kr 2019 old] - challenge 8
[webhacking.kr 2019 old] - challenge 8
2019.10.01Challenge 8body { background:black; color:white; font-size:10pt; }Access Denied!"); echo(htmlspecialchars($agent)); exit();}$db = dbconnect();$count_ck = mysqli_fetch_array(mysqli_query($db,"select count(id) from chall8"));if($count_ck[0] >= 70){ mysqli_query($db,"delete from chall8"); }$result = mysqli_query($db,"select id from chall8 where agent='".addslashes($_SERVER[..
[webhacking.kr 2019 old] - challenge 6
[webhacking.kr 2019 old] - challenge 6
2019.10.01위 문제의 소스코드를 보면 id와 pw값을 각각 20번씩 base64로 인코딩하고 이를 각각의 문자로 치환하는 것을 볼 수 있다. 이 문제를 풀기 위해서는 user와 password 쿠키 값이 역으로 디코딩해서 최종적으로 user는 'admin'이 , password는 'nimda'가 나와야 한다. 따라서 'admin' 과 'nimda' 이 20번 base64로 인코딩하고 치환한 값을 얻기 위해서는 위의 소스코드의 일부를 가져와 아래 처럼 수정 후 실행한다. 실행하면 아래와 같은 결과가 출력이 된다. 이를 user 쿠키과 password 쿠키에 값을 각각 넣어 수정하고 재요청 보내면 문제가 풀리게 된다.
[webhacking.kr 2019 old] - challenge 1
[webhacking.kr 2019 old] - challenge 1
2019.10.01위 문제의 소스 코드를 보면 아래와 같다. 'user_lv' 이라는 쿠키가 없을 경우 쿠키를 생성하고 값은 1로 설정한다. ---------------------