링크로 들어가면 17번 문제를 확인할 수 있다.

문제만 보면 전혀 모르겠다 ^^
소스코드
<html>
<head>
<title>Challenge 17</title>
</head>
<body bgcolor=black>
<font color=red size=10></font>
<p>
<form name=login>
<input type=passwd name=pw><input type=button onclick=sub() value="check">
</form>
<script>
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+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+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+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+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+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+9999999;
function sub(){
if(login.pw.value==unlock)
{ location.href="?"+unlock/10; }
else
{ alert("Wrong"); }
}
</script>
패스워드를 입력하고 check 버튼을 클릭하면 sub함수가 호출되는 구조이다.
핵심은 script 내용이다.
긴 unlock값이 있고 밑에 sub함수가 정의되어 있는데
function sub(){
if(login.pw.value==unlock) {
location.href="?"+unlock/10;
} else {
alert("Wrong");
}
}
입력한 패스워드 값 = unlock
→ 현재주소+?unlock/10으로 이동
① 패스워드 값으로 unlock값을 입력하면 원하는 주소로 이동할 수 있고 문제가 풀린다.
② unlock값을 알아야 한다.
해결
[F12] → [Console]로 들어간다.
콘솔창에 unlock의 수식을 입력한다.

콘솔창에 입력해서 unlock=7809297.1 임을 알았다.
이제 패스워드로 7809297.1를 입력하면 문제가 풀린다!

javascript는 클라이언트 쪽에서 처리하는 언어이기 때문에 사용자가 소스 코드 확인 및 수정 가능
→ 보안에 취약한 언어
해당 문제는 자바스크립트의 보안 취약점을 이용한 문제이다.
얻쉬 오늘 공부 끝
'Webhacking' 카테고리의 다른 글
[Webhacking.kr] old-12번 풀이 (0) | 2022.12.21 |
---|---|
[Webhacking.kr] old-19번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-24번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-1번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-10번 풀이 (0) | 2022.12.21 |
링크로 들어가면 17번 문제를 확인할 수 있다.

문제만 보면 전혀 모르겠다 ^^
소스코드
<html>
<head>
<title>Challenge 17</title>
</head>
<body bgcolor=black>
<font color=red size=10></font>
<p>
<form name=login>
<input type=passwd name=pw><input type=button onclick=sub() value="check">
</form>
<script>
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+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+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+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+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+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+9999999;
function sub(){
if(login.pw.value==unlock)
{ location.href="?"+unlock/10; }
else
{ alert("Wrong"); }
}
</script>
패스워드를 입력하고 check 버튼을 클릭하면 sub함수가 호출되는 구조이다.
핵심은 script 내용이다.
긴 unlock값이 있고 밑에 sub함수가 정의되어 있는데
function sub(){
if(login.pw.value==unlock) {
location.href="?"+unlock/10;
} else {
alert("Wrong");
}
}
입력한 패스워드 값 = unlock
→ 현재주소+?unlock/10으로 이동
① 패스워드 값으로 unlock값을 입력하면 원하는 주소로 이동할 수 있고 문제가 풀린다.
② unlock값을 알아야 한다.
해결
[F12] → [Console]로 들어간다.
콘솔창에 unlock의 수식을 입력한다.

콘솔창에 입력해서 unlock=7809297.1 임을 알았다.
이제 패스워드로 7809297.1를 입력하면 문제가 풀린다!

javascript는 클라이언트 쪽에서 처리하는 언어이기 때문에 사용자가 소스 코드 확인 및 수정 가능
→ 보안에 취약한 언어
해당 문제는 자바스크립트의 보안 취약점을 이용한 문제이다.
얻쉬 오늘 공부 끝
'Webhacking' 카테고리의 다른 글
[Webhacking.kr] old-12번 풀이 (0) | 2022.12.21 |
---|---|
[Webhacking.kr] old-19번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-24번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-1번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-10번 풀이 (0) | 2022.12.21 |