itsme

5주차 : 웹 서비스 기반 주요 위협(2) 본문

대외활동/K-Shield 10기

5주차 : 웹 서비스 기반 주요 위협(2)

itssmeee 2023. 4. 10. 16:01
반응형

[ SQL Injection (SQLi) ]

  • 우회가능. DB 데이터 유출 가능.
  • SQLi 종류
    • Error based SQLi : 강제 에러 발생
    • Union based SQLi : 두 개의 쿼리를 연결. 앞의 쿼리 (select문)와 뒤의 쿼리 (select문)의 column 개수가 동일 해야함.
      • SYSOBJECTS ⇒ 테이블 이름 : name
      • SYSCOLUMNS : 어떤 테이블의 컬럼정보인지 알 수 없음. 컬럼 이름 : name
      • information_schema.tables : 테이블 정보 ⇒ 테이블 이름 : table_name
      • infromation_schema.columns : 컬럼 정보 + 테이블 정보⇒ 테이블 이름 : table_name
      • ⇒ 컬럼 이름 : column_name
    • <Keyword>
    • Blind based SQLi : error, union 안터짐. yes or no로 하나씩 찾는것. 참/거짓을 판단 할 지표가 반드시 필요함.
      • ‘ and 1=1 — : 무조건 참인 쿼리
      • ‘ and 1=2 — : 무조건 거짓인 쿼리
      <substring( ) 함수>
      • substring(’문자열’, 커서위치, 길이)
      • ex) substring(’admin’,1,1) ⇒ a, substring(’admin’,2,3) ⇒ dmi
      창녕읍' and substring((select top 1 user_id from members),1,1)='a' -- 창녕읍' and substring((select top 1 user_id from members),1,1)>'a' -- 창녕읍' and substring((select top 1 user_id from members),1,1)='o' --
      • 만약 싱글 쿼터를 못쓰게 막았다면 ?→ 아스키코드 활용
      • and substring((select top 1 user_id from members),1,1)=char(111) -- and ascii(substring((select top 1 user_id from members),1,1))=111 --
    < 참/거짓까지 확인이 불가할때>창녕읍’; if 1=1 waitfor delay ‘0:0:0’ --→ 강제로 delay를 줘서 확인한다.
  • 창녕읍’; if substring((select top 1 user_id from members),1,1)=’o’ waitfor delay ‘0:0:1’ --
  • [Time based SQLi]

[XSS]

외부의 공격자가 클라이언트 스크립트를 악용하여 웹사이트에 접속하려는 일반 사용자로 하여금 공격자가 의도한 명령이나 작업을 수행하도록 하는 공격자

공격대상 : 이용자

  • Reflected XSS (반사형)
    • 악의적인 스크립트 저장 X (단발성)
    • 상대적으로 파급효과가 크진 않음.
    “><script>alert(1)</script><script>alert(1)</script> 이용하여 오류확인⇒ 파라미터 즉, 입력할 수 있는 곳에 다 테스트해봐야함!!
  • ⇒ hidden 파라미터에도 넣어볼것!
  • <script>alert(1)</script>
  • Stored XSS (저장형)
    • 악의적인 스크립트 저장 O
    • 파급효과가 큼

[CSRF]

공격대상 : 관리자 대상

[파일 업로드 취약점]

특정 확장자를 가진 파일만 올릴수 있는데 이것을 제대로 검증안해주면 악성코드, 웹쉘 등을 올릴 수 있음.

굳이 웹쉘이 아니라 html 파일이 올라가도 취약하다고 볼 수 있음.

해당 브라우저에서 동작하는 언어로 만들어진 웹쉘을 올려야함

php기반-> php웹쉘, asp -> asp 웹쉘, jsp -> jsp 웹쉘

웹쉘을 올린 후 올라갔는지, 올라가고 실행까지 되는지 등을 확인해야함.

<우회>

  • 확장자 우회 : webshell.txt.asp
  • 특수문자 우회 : webshell.asp%00.txt

[파일 다운로드 취약점]

서버내의 민감한 파일을 다운로드 가능.

내부의 정보를 수집, 유출하는 취약점.

다른 취약점과 연계가 된다면 파급력이 큼.

경주 추적 취약점과 연계가 되면 루트디렉토리를 벗어나서 파일 다운로드 가능.

 

[SSRF]

서버 측 요청 위조라는 뜻.

SSRF 취약점은 웹서버에서 외부 또는 내부서버로 요청하는 기능이 있을 때 요청값을 변조하여 공격자가 원하는 서버로 질의하는 공격이다. 따라서 기본적으로 SSRF 취약점을 scanning 유형의 공격이다.

웹서버 1 : 보안용어 검색 서비스 ⇒ 위키피디아 페이지에서 결과를 가지고 와서 사용자에게 출력

사용자 : CIA 위키피디아에서 검색해줘

⇒ 서버 1 : 위키에서 CIA 요청하여 결과를 사용자에게 가져다줌.

사용자는 서버에게 요청, 서버 1은 다른 서버에 요청하여 결과를 가져와 수행 ⇒ SSRF 취약점 발생

ex2)

서버 A : 원래 서버 B에게 정상요청을 함.

정상 이용자(외부망) : A(외부망)야 B(외부망)에게 요청해줘.

공격자 : A(외부망)야 C(내부망)에게 요청해줘.

⇒ A는 원래 B에게만 요청을 해서 별 다른 인증 과정이 없어 C에게 요청을 할때 걸리는게 없음.

⇒ 사실상 망분리가 의미 없음. IDS, IPS에서 잘 막지 못함. 정보를 유출하거나 스캐닝정도만 피해 효과 발생가능.