전체 글 (81) 썸네일형 리스트형 [SQL Injection] CTF - SQL Injection Point 3 문제풀이 기억하자. SQL Injection에서는 참/거짓에 따라 달라지는 응답을 확인해야함을. sort라는 파라미터가 있는걸 봐서 order by에 쓰일 것으로 예상됨 sort 값을 1로 줬을 때 2로 줬을 때 확실하다 order by에서 참/거짓을 이용해보자 case when (조건) then (참일 때) else (거짓일 때) end 구문을 사용할 것이다 참일때 (조건을 1=1로 설정) 거짓일 때 (조건을 1=2로 설정) 거짓일 때는 select 1 union select 2 즉, 구조체가 응답이 된 것이니 정렬이 불가하다 그래서 아무 게시물도 나타나지 않은 것이다 아무튼 차이가 아주 확연하다 이제 조건 부분에 sql 문을 넣어 db 부터 추출하면 될 것이다 자동화를 이용하자 import requests i.. [SQL Injection] CTF - SQL Injection Point 2 문제풀이 게시판 검색창에 작성자로 sdf를 검색하면 다음과 같이 파라미터가 전달되는 것을 확인 전달되는 파라미터를 확인했으니 db에서 사용하는 SQL 문을 대략적으로 추측해보면 select * from 테이블 where username like '%sdf%' and ~~~ 이런 식일것 같다. 추측한 sql 문을 이용해보자 option_val에 1=1 and username을 입력하면 select * from 테이블 where 1=1 and username like '%sdf%' and ~~~ 1=2 and username을 입력하면 select * from 테이블 where 1=2 and username like '%sdf%' and ~~~ 확인해보자 option_val에 1=1 and username을 입력했을.. [SQL Injection] CTF - SQL Injection Point 1 문제풀이 사실 푼건 진작인데 기억이 가물가물해가서 정리해본다 기억하자. SQL Injection에서는 참/거짓에 따라 달라지는 응답을 확인해야함을. 마이페이지에 접속해보면 쿠키의 user에 id가 담겨 있는 것을 확인 user에 sdf' and '1'='1과 sdf' and '1'='2를 넣었을 때 info의 placeholder 값이 다른 것을 확인 ==> sqli 취약점 발견 취약점을 찾았으니 어떻게 정보를 빼낼지 생각해야한다. 여기선 error based나 union based는 사용할 수 없으므로 blind로 가야한다. 파이썬으로 자동화 코드를 작성해서 추출해보자. import requests import urllib.parse url = "http://ctf.segfaulthub.com:7777/sqli.. CSRF란? (정의, 취약점, XSS와의 차이점) CSRF(Cross Site Request Forgery)란? : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격이다. 이 공격도 sql injection과 xss와 마찬가지로 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드에서 찾아볼 수 있다. CSRF 취약점 확인 CSRF는 임의의 요청을 하게 만드는 공격이므로 모든 요청에서 일어날 수 있다. 다만 요청 보내는 곳을 싹다 취약점으로 취급하지는 않는다. 주로 공격자가 요청을 임의로 만들 수 있고, 이것이 위험도가 크면 취약점으로 잡는다. 예를 들어 비밀번호 변경 요청 URL이 https://hackker.com/pwchange.php?newpw=1234&pw_conf=1234 의 형태로 파라미터.. [CSRF] CTF - GET Admin 1 문제풀이 첫번째 방법 마이페이지에서 비밀번호를 수정했을 때 id, info, pw가 파라미터로 넘어가는 것을 확인 Change request method (POST 방식을 GET 방식으로 바꿈) => Copy Url 해서 주소창에 입력했을 때 정보가 수정되는 것을 확인 관리자가 게시글을 열람하면 비밀번호가 변경되는 URL에 접근되도록 img 태그를 작성 (xss 취약점이 존재하는 것은 사전에 확인함) 위 게시글의 URL에 관리자가 접근하도록 유도해서 비밀번호가 변경되게 한 후 관리자 계정으로 로그인하면 플래그 탈취 성공 두번째 방법 비밀번호가 수정되면 수정이 완료됐다는 alert 창이 뜨지 않도록 iframe에 sandbox 속성을 주어 자바스크립트가 실행되지 않게 함 이후 과정은 동일 12주차 수업 정리 (CSRF, XSS와 CSRF 차이, CSRF 취약점, 공격 예시) CSRF (Cross Site Request Forgery) 피해자가 서버로 임의의 요청을 하게 만드는 것 XSS vs CSRF XSS : 클라이언트 측 스크립트를 삽입하는 공격 CSRF : 피해자가 서버로 공격자의 의도가 담긴 요청을 하게 만드는 공격 보통 서치를 해보면 xss는 클라이언트 측 공격이고 csrf는 서버 측 공격이라고 설명하는 경우가 많은데 엄밀히 말하면 아님. 하지만 간혹 면접관분들이 이런 식으로 이해하고 있는 경우가 있으니 이렇게 얘기해도 되긴 함. CSRF가 XSS를 만나면 파급력이 커짐 CSRF를 설명할 때 XSS 형태로 보여주는 경우가 많은데, 이는 csrf가 xss를 만나면 파급력이 훨씬 커지기 때문임. 하지만 xss 형태 말고도 피해자에게 정보를 바꾸는 url (GET 방식).. [JavaScript] CTF - Steal Info 문제 풀이 (Dom 접근조작으로 중요정보 탈취) 중요 정보가 있는 페이지와 똑같은 페이지에서 This is a Very Secret Info. 부분의 class가 'card-text'인 것을 확인함 document.getElementByClassName('card-text')를 이용해서 정보를 추출하면 될 것으로 예상됨 게시글 부분에서 스크립트가 삽입되는 것을 확인했으니 iframe 태그로 다른 페이지에 있는 정보를 추출해낼 것이다 으로 현재 게시글 페이지에 중요 정보가 있는 페이지를 삽입한다. 이후 스크립트로 중요 정보가 있는 페이지에 접근하여 중요 정보를 img 태그로 공격자 페이지에 전송한다. 자세한 절차는 아래 게시글에 정리해두었다 https://studysteadily.tistory.com/28 11주차 수업 정리 - 2 (JavaScript.. 11주차 수업 정리 - 2 (JavaScript DOM, 정보 탈취) JavaScript를 이용한 페이지 리다이렉트 1. 2. JavaScript를 이용한 주소창 변조 Reflected XSS 공격에서 URL이 너무 길어서 의심스러워 보일때 사용한다. JavaScript로 DOM 객체 접근 전체 소스코드에 접근 document 특정 태그에 접근 document.getElementById document.getElementByClassName 특정 태그의 속성 가져오기 document.getElementById('') .getElementsByClassName('') 등 태그 안의 text 가져오기 .innerHTML 등 좀 더 자세하게는 여기서 https://studysteadily.tistory.com/23 Javascript DOM 접근 및 조작 (CRUD, 이벤트 핸.. 이전 1 ··· 4 5 6 7 8 9 10 11 다음