해킹/Web Hacking 28

주통기반 취약점 점검 리스트 별 시나리오

주통기반 취약점 점검 리스트를 살펴보자 SQL Injection 처음으로 살펴볼 것은 SQL Injection입니다. SQL Injection은 사용자의 입력값이 SQL에 필터링 없이 전달될 경우 SQL 쿼리문에 사용되는 특수문자들이 사용자의 입력값에 포함되어 있다면 이 문자 또한 쿼리문의 일부처럼 동작하게 되는 취약점입니다. 입력값을 전송한 후 서버의 반응에 따라 union, error based, blind 등 다양한 유형의 공격을 할 수 있습니다. 대표적으로 union 형태와 blind 형태 공격 시나리오를 제시해보겠습니다. * Union SQL Injection 시나리오 union은 두 가지의 select 구문을 연결시켜 실행시킬 수 있는 명령어입니다. ex) (select ~~ ) union (..

해킹/Web Hacking 2023.07.03

Blind SQL Injection python 스크립트 제작

Blind SQL Injection은 SQL Injection 취약점이 발견되었을 때 실전적으로 가장 쓸모있는 공격이 아닐까 싶다. 하지만 자동화하지 않는 이상 극도의 노가다를 요하기 때문에 항상 스크립트 제작만 해야지..하고 있었는데 드디어 제작에 성공하여 포스팅을 올려본다. python에서 라이브러리는 requests를 사용할 것이다. 기본적인 흐름은 ~~len 함수로 길이를 구한 뒤, 그 값과 ascii코드를 이용해 실제 문자열을 찾아내고 출력해준다. 하지만 len 함수를 제작하지 않고 문자열 반복문을 돌리더라도 오류가 생기지 않아서 find_id()와 find_pw()부터는 1부터 10까지 적당한 범위 내에서 바로 문자열을 찾아내버린다 blindsqli.py import requests url =..

해킹/Web Hacking 2023.07.01

[15주차] 스터디 정리 - 주통기반 취약점 항목

보고서 이름 : [프로젝트이름]_대상_모의해킹결과보고서_날짜(이름)_v1.0.doc 폰트 맞출 것 (맑은 고딕, 바탕체 혼용안되게끔) 만약 SQL Injection을 5군데 다 찾았다? 다 쓸 필요는 없음 일어나는 방식이 똑같기 때문 종이 너비 맞추기 Stored XSS의 경우 Form : Store : View : 이렇게 3가지 주소 URL을 다 써주는 게 좋음 > 이행점검하기에 좋음 5일 -> 2일,3일 -> 모의해킹, 2일 -> 보고서 * 주통기반 가이드에서 버퍼 오버플로우와 포맷스트링은 거의 안나옴 > C언어로 웹을 개발해야 나오는 취약점인데, 요새는 그런 웹 사이트가 거의 없음 (하지만 화이트해커로써 개념은 알고 있어야함. 면접에서도 물어볼 수 있음) (1) 버퍼 오버플로우 BufferOverf..

해킹/Web Hacking 2023.06.29

[12주차] 스터디 정리 - 인증/인가 취약점

인증 / 인가 취약점 * 인증 : 로그인 인증. -> 그 사람이 맞는지 확인하는 작업. * 인가 : -> 허락된 사람에게 어떤 권한을 부여 권한이 없는 사람이 어떤 행동을 하면 전부 인가 취약점으로 분류 [-] HSTS 강제로 https 연결 ctf.segfaulthub.com 크롬 HSTS 삭제, 해제 * Case 1. 인증 우회. -> 클라이언트 측에서 인증이 일어나면 문제가 일어날 수 있음 원래라면 if (로그인 성공) { } else { } 해야 하는데, 시작하자마자 메인페이지가 나오고 login.php로 이동되는 식 2. intercept가 on 되어있는데도 버튼을 눌렀을 때 잡히는 게 없다. 이는 권한이 없다는 판단을 서버가 하는 게 아니라 브라우저 측에서 하고 있다는 의미이다. 따라서 js에..

해킹/Web Hacking 2023.06.15

File Upload 취약점 대응 방안 - BLOB / CLOB 구현

이번에는 File Upload 공격을 막을 수 있는 BLOB 저장 방식을 구현해보겠습니다. File Upload 취약점이라는 건 서버에 공격자가 업로드한 파일이 저장되고, 그 파일을 실행시킬 수 있기 때문에 발생하는데요, 하지만 BLOB 형식인 긴 문자열의 데이터로 이미지나 파일을 저장시킨다면 이는 File Upload 공격에 대한 완벽한 대비책이 됩니다. BLOB ( Binary Large Object ) JavaScript에서 Blob은 이미지, 사운드, 비디오 같은 멀티미디어 데이터를 다룰 때 사용합니다. BLOB TINYBLOB MEDIUMBLOB LONGBLOB 이 중, LONGBLOB은 4GB까지의 데이터를 저장가능합니다. 터미널을 열고 다음과 같은 코드를 입력해 blob 을 저장할 테이블을 ..

해킹/Web Hacking 2023.06.14

[11주차] 해킹 스터디 정리 - File Download 공격, LFI 취약점

[File Upload] 취약점 이유 > 업로드 되는 파일을 검증X 공격 시나리오 1. 웹 쉘 (리버스 쉘을 업로드하기 전 poc같은 느낌) 2. 도스 공격 3. 디페이스공격 index.html 4. 페이지 변조. 피싱 공격. 5. 악성코드 유포. * 대응 방법! 1. 업로드 되는 파일 DB에 저장. -> CLOB / BLOB 으로 설정하면 파일을 DB에 저장할 수 있음 (결국 웹서버가 아닌 다른 곳에 저장할 수 있게 만들면 어디든 가능) > 이미지 파일도 바이너리 형식으로 저장시킴 2. NAS (Network Attatched Storage : 파일 서버) : LAN으로 연결하는 외장 하드디스크 -> 업로드 파일이 저장되는 서버를 웹서버와 분리. 3. 파일 검증. - 확장자 검증 - 파일 시그니쳐 검증..

해킹/Web Hacking 2023.06.08

[10주차] 해킹 스터디 정리 - File Upload 공격

** 모의해킹 워라벨 -> 정보보안팀 모의해킹 팀. 보안컨설팅. IT -- File Upload What : 공격자가 임의의 파일을 업로드 할 수 있는 공격 -> 웹 쉘. -> 서버 장악. 웹 쉘이라는 건 사실 한 줄로도 만들 수 있음 ** Point ** 1. 우리가 웹 서버에서 실행할 수 있는 파일 2. 그걸 실행할 수 있어야함. (가장 중요) -> 업로드된 파일의 위치를 알아야 함. 만약 mal.php 라는 파일이 있다면? 웹 브라우저로 우리가 올린 파일을 요청하면 됨. 그럼 was에서 php 파일을 실행하고 우리(요청자)에게 전해주게 됨 웹 쉘을 띄웠을 때 가장 먼저 대부분 어떤 일을 할까? 대부분 소스코드를 탈취함 ** 소스코드 탈취. -> DB를 탈취 한다는 말과 동일 > 왜냐면 DB의 계정 ..

해킹/Web Hacking 2023.06.01