본문 바로가기

보안공부/Webhacking.kr 풀이

webhacking.kr 20번 문제 풀이 - 비교대신 대입!

WEBHACKING.KR 20번 문제 풀이

비교대신 대입! ]


그럼 오늘은 webhacking.kr 20번 문제를 풀어보도록 하자.


아무거나 치고 code 섹션에 캡챠까지 치고 submit을 눌렀더니 다음과 같이 뜹니다.


그래서 사이트를 잘 둘러보니 상단에 다음과 같은 문구가 있었다.

사이트가 로드된 시점을 기준으로 2초안에 보내야 하나보다.


사람 손과 인터넷으로는 불가능한 속도니까 스크립트의 힘을 빌려보자.

원래 저 페이지의 코드에 있던 스크립트는 다음과 같다.

function ck()
{
if(lv5frm.id.value=="") { lv5frm.id.focus(); return; }
if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; }
if(lv5frm.hack.value=="") { lv5frm.hack.focus(); return; }
if(lv5frm.hack.value!=lv5frm.attackme.value) { lv5frm.hack.focus(); return; }
lv5frm.submit();
}

비어있는 칸이 있거나 code에 입력된 값과 캡챠값이 일치하지 않으면 해당 칸에 포커스해주는 코드이다.


잘 생각해보자.

!= 나 ==는 비교를 수행 하지만 =는 대입을 하니까 다음과 같은 스크립트를 사이트가 로딩된지 2초 안에 console에 넣어주면 작동할것이다.


lv5frm.id.value="blahblah";
lv5frm.cmt.value="blahblah";
lv5frm.hack.value="blahblah";
lv5frm.hack.value=lv5frm.attackme.value;
lv5frm.submit();

사이트에서 처음 제공해준 스크립트를 변형한 코드로, 모든 칸을 blahblah로 채우고 submit하는 코드이다.


한국인의 겁나 빠른 손놀림으로 2초안에 위 스크립트를 실행해주면 문제가 해결된다.




WEBHACKING.KR 20번 문제 클리어!