전체 글 249

[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

해킹 기법 - Rudy Attack (R.U.D.Y 공격) , 살라미 공격

미드 Mr.Robot에서 나온 해킹 기법 중에 하나라고 한다. Rudy Attack R U Dead Yet? 공격 > DOS 공격 Denial Of Service 공격. ( 서비스를 거부시키는 공격 ) RUDY는 터무니 없이 느린 속도로 양식 데이터를 제출하여 웹 서버를 묶인 상태로 유지하는 것을 목표로 하는 서비스 거부 공격 도구이다. 낮고 느린 공격이지만 공격이 성공하면 피해자의 원본 서버를 합법적인 트래픽에서 사용할 수 없게 된다. 카페가 "이 장사를 못하게 하고 싶어." > 키오스크 앞에서 계에에속 주문 했다가 안했다가 고민하는 것 HTTP 데이터 전달. POST / login.php Content-Length : 100 AA AAA AAAA 실제로 wireshark로 패킷을 살펴보니 Conten..

Web Shell CTF #3 풀이

이번에는 WebShell #3 문제를 풀어보겠습니다. 링크의 lfi_1라는 텍스트를 보니 LFI 취약점을 이용하는 문제인 것 같습니다. flag.txt 의 파일 내용을 읽어내야 하는 문제입니다. 회원가입을 진행해주고 로그인을 합니다. 기존의 문제랑 달리 배치가 모양새를 띄고 있네요 ㅋㅋ 인사말 페이지에 취약한 파라미터가 있을 확률이 높을 것 같습니다. 게시판에 들어가 제목과 간단한 내용을 작성하고 간단한 이미지 파일을 업로드해서 패킷을 어떻게 주고받는지 살펴보겠습니다. Intercept 를 on 해줍니다. 대략 이런 패킷들이 주고받아지고 있습니다. 이상한 건 intercept 를 on 하고 Download를 눌렀는데도 다운로드가 받아졌다는 것입니다. 그래서 파일의 저장 위치를 알아내기 위해 개발자 도구를..

File Download CTF #2 풀이

이번엔 File Download CTF 두번째 문제를 풀어보겠습니다. 파일 다운로드 취약점을 발견했다면? 아마 파일 업로드도 해보고 다운로드도 해보고 웹 사이트를 탐색하다가 발견했을 겁니다. 그렇게 download.php라는 파일에서 filepath라는 파라미터로 다운로드 받는다는 것을 알아낸 상황입니다. 슬래시 다음 제 아이디 다음 슬래시 파일 명입니다. 그럼 오른쪽 Response에서 PNG 파일 시그니쳐와 함께 다운로드된 것을 볼 수 있습니다. 테스트를 위해 이전 디렉토리로 가는 ../를 넣어주겠습니다. 어라? 그래도 다운로드가 됩니다. /bokyu/itsfruit.png도 다운되고 /../bokyu/itsfruit.png도 다운이 된다? 이건 업로드할 때 이중으로 저장되는 게 아닌 이상 어떤 글자..

[12주차] 게시판 구현 #8 - 게시판 날짜 지정 검색 구현

이번에는 게시판에 날짜를 지정해서 검색하는 기능을 구현해보겠습니다. 다음 코드를 form 태그 안 쪽으로 넣어준다. noticeboard.php 이렇게 되면 예쁘게 input 태그가 생겼습니다. GET 파라미터로 첫 번째 INPUT 값에서 pre_date를 받고 이를 시작일로 인식하게 합니다. 두 번째 INPUT 값에서 end_date를 받고 이를 종료일로 인식하게 합니다. 그리고 페이징 구현 부분에서 전달되는 파라미터가 있는 모든 url코드에 pre_date와 end_date를 추가해줍니다. 각 URL마다 변형할 것 없이 똑같이 해주면 됩니다. 이렇게 파라미터가 전해지는 URL에 모두 pre_date와 end_date 파라미터 추가가 완료되었습니다. 그런데 내가 만든 웹사이트에서는 게시판 DB에 작성날..

개발/웹 개발 2023.06.09

[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

[Git] 두 번째 프로젝트를 열고 싶다면?

원래 GitHub이라는 걸 이름만 알고 있었지 첫 커밋이란 것도 최근에 해보았다 사실 얼레벌레 구글링한걸 따라치다보니 된 느낌이라 테스트용으로 다른 레포지토리를 열어 다시 한번 커밋해보아야겠다고 생각했다 테스트용으로 간단한 html 파일을 하나 만들었다. index.html 쓰다보니 알게된건데 VSC에는 GIT표시가 나와있었다.. VSC 꽤 썼다고 생각했는데 GIT을 알고난뒤에야 이게 보인다..역시 사람은 아는 만큼 보이는듯 git에 익숙해져야겠다고 생각한 내 의도와 저 버튼 연구는 의중이 딱 맞아떨어졌다 저 체크표시를 누르면 Commit이 바로 되는데, 저기 Message를 치면 git commit -m "어쩌구" 이 코드와 같은 효과를 낸다 커밋 후에 git에서 알려준 코드 3줄을 복사해 냅다 입력했..

해킹 기법 - Metasploit

전쟁에 있어 해킹이란 (1) 시스템 파괴 => 전력 시스템 ICS 댐, 화력발전소, 수력발전소, 전력 시설. (2) 심리전 => Deface 공격 (일반 웹 사이트 대상으로) => Deepfake (3) 디도스 전쟁에서 해킹. -- 우크라 IT군 Metasploit 정말 강력한 해킹 툴. eternalblue 칼리 리눅스에 들어가 search eternalblue 라고 치면 관련된 모듈이 주루룩 나온다 그 중, smb_ms17_010 을 use auxiliary/scanner/smb/smb_ms17_010 라거나 use [ 해당 번호 ] 라고 치면 해당 모듈이 '장착' 된다. show options 라고 하면 어떤 옵션을 넣어야 하는지 required인지를 확인할 수 있다. 저렇게 확인했을 때 Requi..

File Upload CTF 풀이 #2

이제 File Upload 두번째 문제를 풀어보겠습니다. 회원가입을 다시 진행해주고 게시판에 들어갑니다 1편에서 사용했던 webshell.php파일을 그대로 올리려고 하니 php를 업로드할 수 없다고 뜬다. 확장자를 webshell.png.php로 바꿔보았는데도 업로드 되지 않았다. 일단 파일이 어디에 저장되고 다운로드 되는지를 알기 위해서 일반 이미지 파일을 하나 첨부했다 일반 이미지 파일은 잘 올라갔다 파일이 올라갔을 때 png 파일을 올렸으므로 File 시그니쳐가 뭍게 되는데, 이 파일 시그니쳐 맨 끝에 웹 쉘 코드를 그대로 붙여준다. 다운로드를 눌러도 버프 스위트에 반응이 없어서 F12를 눌러 개발자 도구를 살펴봤더니 a 태그에 다운로드 주소가 나와있었다 일단은, 이 위치를 기억해두고 아까 한 줄..