[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정
01. sql injection
https://freefworry.tistory.com/112
[SK shieldus Rookies 19기] Injection 취약점 - SQL injection
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. Injection 취약점 : 입력값에 처리를 조작할 수 있는 문자열 포함 여부를 확인하지 않고 처리에 사용하는 경우, 처리의 구조와 의미가
freefworry.tistory.com
https://freefworry.tistory.com/113
[SK shieldus Rookies 19기] WebGoat - String / Numeric / Blind sql injection
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. String sql injection 이름을 입력하면 해당 사용자의 정보를 출력 모든 사용자의 정보를 출력해보자 Smith' or 'a' = 'a SELECT * FROM user_data WHER
freefworry.tistory.com
https://freefworry.tistory.com/114
[SK shieldus Rookies 19기] WebGoat - LAB Stage 1, 3
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. Stage 1 - String SQL Injection Neville로 로그인 시도해보자 입력 창에 항상 참이 되는 구문 삽입 a' or 'a' = 'a 길이 제한이 8로 걸려있음 변경
freefworry.tistory.com
https://freefworry.tistory.com/115
[SK shieldus Rookies 19기] bWAPP bee.box - Sql injection
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. Union Based SQL injection kali에서 beebox 접속 영화 정보를 조회하는 페이지 해당 서비스에 등록된 모든 사용자의 계정 정보를 탈취해보자
freefworry.tistory.com
02. code injection
ex. eval(), exec()
from django.shortcuts import render
def route(request):
# 외부에서 입력받은 값을 검증 없이 사용하면 안전하지 않다
message = request.POST.get('message', '')
# 외부 입력값을 검증 없이 eval 함수에 전달할 경우 의도하지 않은 코드가
# 실행될 수 있어 위험하다
ret = eval(message)
return render(request, '/success.html', {'data':ret})
해당 코드에 “compile(‘for x in range(1):\n import time\n time.sleep(20)’,’a’,’single’)”을 삽입
from django.shortcuts import render
def route(request):
message = request.POST.get('message', '')
# 사용자 입력을 영문, 숫자로 제한하며, 만약 입력값 내에 특수문자가 포함되어
# 있을 경우 에러 메시지를 반환 한다
if message.isalnum():
ret = eval(message)
return render(request, '/success.html', {'data':ret})
return render(request, '/error.html')
사용하지 않는게 좋지만.. 써야한다면 안전하게 수정
03. 경로 조작 및 자원 삽입
외부 입력값이 자원(서버의) 식별자로 사용되는 경우에, 해당 자원을 선점하거나 충돌시켜 정상적인 서비스를 방해
ex. 잘못된 경로를 전달해서 접근할 수 없는 파일을 읽어오기.. 포트를 미리 선점해서 오류나게 만들기..
pybo 실습
urls.py에 추가
views.py에 다운로드 함수 추가
편의를 위해서 get방식으로 사용확장자 검증 후 파일 열기
success.html
error.html
만들기
실습을 위해서
웹 페이지에서 접근할 수 있는 파일
웹 페이지에서 접근할 수 없는 파일
을 각각 생성해준다
위에서 확장자만! 검사하고 있기 때문에 경로와 상관없이 모두 접근이 됨
지정된 경로의 파일만 접근 가능하게 설정해주자
파일명만 받아오게 설정
경로에 있는 hello.txt는 제대로 나오지만
userinfo는 nofound..
하지만 경로 조작을 시도해보면
접근 가능해진다..
경로 조작하는 경우까지 막아보자
replace해버리기
다시 전달해보면
경로 조작한 부분이 replace돼서 나오는 모습
당연히 해당 경로에는 파일이 없으니 NotFound!
04. Cross Site Scripting (XSS)
https://freefworry.tistory.com/119
[SK shieldus Rookies 19기] 크로스 사이트 스크립트 XSS (Cross-Site Scripting)
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. XSS (Cross-Site Scripting) : 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도 02. Stored XSS : 공격자의 스크립트 서
freefworry.tistory.com
https://freefworry.tistory.com/125
[SK shieldus Rookies 19기] bWAPP Bee.Box - Cross-Site Scripting - Reflected (GET)
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. XSS - Reflected 성과 이름을 입력하면 입력했던 값이 출력에 사용되는 모습 각각 스크립트를 넣어보면 모두 alert가 뜨는 모습 = 처리가
freefworry.tistory.com
https://freefworry.tistory.com/126
[SK shieldus Rookies 19기] bWAPP Bee.Box - Cross-Site Scripting - Stored (Blog)
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. XSS - Stored 입력 값이 저장되어 보여짐 태그를 사용해보면 문자열 그대로가 아닌 html 태그로 해석되는 모습 → xss 스크립트를 짤 수
freefworry.tistory.com
https://freefworry.tistory.com/127
[SK shieldus Rookies 19기] Django pybo - Cross-Site Scripting (Stored)
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정 01. pybo - autoescape 기존에 만들어 뒀던 게시판에 접근 xss 스크립트 삽입 스크립트가 단순 출력 됨 소스 보기를 하면 html 인코딩 되어있는
freefworry.tistory.com
'Rookies > 애플리케이션 보안' 카테고리의 다른 글
[SK shieldus Rookies 19기] Python 시큐어코딩 가이드 - 입력 데이터 검증 및 표현 03 (0) | 2024.04.01 |
---|---|
[SK shieldus Rookies 19기] Python 시큐어코딩 가이드 - 입력 데이터 검증 및 표현 02 (0) | 2024.03.31 |
[SK shieldus Rookies 19기] 파일 업로드 / 경로 조작 취약점 - bWAPP bee.box - Unrestricted File Upload (0) | 2024.03.31 |
[SK shieldus Rookies 19기] Cookie / Session (1) | 2024.03.30 |
[SK shieldus Rookies 19기] Django pybo - 크로스 사이트 요청 위조 (CSRF) (0) | 2024.03.30 |