상세 컨텐츠

본문 제목

9-2.SQL Blind Injection(DVWA - Low)

Hacking/Web Hacking

by it thief 2020. 2. 1. 20:14

본문

SQL Blind Injection

SQL Injection처럼 직접적인 결과를 못 얻을 때에 어떠한 명제를 주어서 AND 같은 연산을 주어서 그 명제가 참인지 거짓인지의 결과를 얻는 방법이다. 하나씩 결과를 얻어야 하는 방법이기 때문에 자동프로그램을 많이 쓰는 편이다.

 

SQL Blind Injection(DVWA - Low)

1. SQL Blind Injection페이지의 Form에 SQL Injection이 통하는지 작은따옴표를 대입시켜 보지만 한정된 결과만 얻는 것을 확인할 수 있다. 

 

2-1. 이러한 한정된 결과에서 쿼리가 변경될 수 있는지 확인이 필요한데 1' and 1=1#을 써보겠다. 1이라는 명제에 1=1의 참 값을 줘서 1의 값이 True이고 1=1의 값도 True이니 결과는 True이 돼야 한다.(1,2,3,4,5의 값은 id가 있기 때문에 True이다.) 하지만 1' and 1=2#와 같이 and뒤에 오는 값을 False를 주면 결과는 False가 돼야 한다. 결과 값이 달라지는 것을 보아 쿼리를 변조할 수 있다는 것을 알 수 있다.

2-2. 위의 AND연산 말고도 Sleep() 함수를 사용하여 응답 시간을 통해 알아 낼수도 있는데 1' sleep(5)#구문을 주면 True이면 5초 뒤에 값이 돌아오고 False면 5초 이내에 반응이 온다.(개발자 도구 -> Network탭에서 응답 시간을 확인할 수 있다.)

 

3. Sqlmap을 이용하여 해킹을 시도해보겠다.(Sqlmap tool) 터미널 창에 #sqlmap -u URL --cookie=COOKIE로 해당 사이트를 살펴 보겠다. 

결과를 보면 boolean-based blind , time-based blind가 가능하다는 것을 알 수 있고 DBS가 MySQL로 되어있는 걸 알 수 있다.

 

4. #sqlmap -u URL --cookie=COOKIE --current-db로 해당 DB이름이 "dvwa"란 것을 알 수 있다.

 

5. #sqlmap -u URL --cookie=COOKIE -D DB_NAME --tables로 해당 DB의 테이블을 알 수 있다.

 

6. #sqlmap -u URL --cookie=COOKIE -D DB_NAME -T TABLE_NAME --columns로 칼럼 이름을 알수 있는데 users테이블에서 password를 알아낼 것이다.

 

7. #sqlmap -u URL --cookie=COOKIE -D DB_NAME -T TABLE_NAME -C COLUMN_NAME --dump로 password칼럼의 데이터를 dump 해서 해쉬 값으로 되어있는 값들을 알아 내보겠다.

 

'Hacking > Web Hacking' 카테고리의 다른 글

10-1.XSS(DVWA - Low)  (0) 2020.02.07
9-3. SQL Injection(DVWA - Medium,High)  (0) 2020.02.02
9-1.SQL Injection(DVWA - Low)  (0) 2020.01.31
8-2.CAPTCHA ATTACK(DVWA - High)  (0) 2020.01.27
8-1.CAPTHCA ATTACK(DVWA - Low,Medium)  (0) 2020.01.27

관련글 더보기

댓글 영역