반응형

웹해킹 109

[CODEGATE2022] CAFE - 웹해킹 / XSS

코드게이트2022 예선에 출제되었던 XSS와 관련된 웹해킹 문제 문제 페이지에 접속하면 회원가입을 요구하고, 회원가입을 한 뒤 로그인해서 들어가면 이렇게 게시판 형태의 페이지가 나온다. if( isset($data['title']) && isset($data['content']) ){ $title = htmlspecialchars($data['title']); $content = $data['content']; if (strpos($content, '' . ''; break; case 'p': case 'span': case 'b': case 'h1': case 'h2': case 'h3': case 'h4': case 'h5': case 'h6': case 'strong': case 'em': case..

CTF/웹해킹 2023.09.24

[247CTF] COMPARE THE PAIR - 웹해킹 / MD5 Magic Hash

php의 약한 비교(Loose Comparison) 로 인해 발생하는 php magic hash 와 관련된 웹 해킹 문제이다. 문제페이지어 들어가면 이런 코드가 나온다 php 로 작성되었는데 GET 으로 password 파라미터가 설정되어있고, md5(salt. $_GET['password']) 의 값이 password_hash 의 값인 0e902564435691274142490923013038 와 같은지 확인한 후 같으면 flag 를 보여주는 기능이다. salt 까지 들어간 해시값의 원래 문자열을 찾는건 불가능에 가깝지만 비교할때 '===' 가 아닌 '==' 을 이용해 두 값을 비교하기 때문에 취약점이 발생한다. 위 사진처럼 php 에서는 == 을 사용해 비교를 할 경우 두 값이 정확하게 같지 않아도 ..

워게임/247CTF 2023.09.23

[247CTF] TRUSTED CLIENT - 웹해킹 / Javascript

247CTF 에서 제공하는 EASY 난이도의 웹히킹 문제 문제 설명을 보면 개발자들이 크리덴셜을 클라이언트 사이드에 저장할 때 난독화 해야하는것이라는 뉘앙스로 적혀있다. 문제 페이지에 접속하면 이런 로그인 창이 하나 나온다. 뭔가 여기 로그인을 성공시켜야할 듯한 느낌이다. F12를 눌러 개발자 도구로 웹 페이지 소스를 보니 뭔가 난독화 되어있는 부분이 보인다. 아까 클라이언트에 크리덴셜을 저장한다는 그런 얘기가 있었던걸로 보아 이게 바로 크리덴셜 정보인듯 하다 해당 부분을 복사해서 콘솔 탭에 붙혀넣어봤는데 내용이 꽤 길다 오른쪽에 보이는 스크롤 만큼 내용이 꽉차있다. 해독하는 방법은 아주 간단하다. 난독화 되어있는 부분의 맨 뒤에 있는 () 를 지워주면 된다. () 를 지우고 엔터를 치면 해독된 자바스크..

워게임/247CTF 2023.09.21

[247CTF] SECURED SESSION - 웹해킹 / Flask

247CTF에서 제공하는 쉬운 난이도의 웹해킹 문제이다. 생각보다 쉽지는 않은것 같다. 문제페이지에 들어가면 이렇게 단순하게 서버의 소스코드만 나와있다. Python flask 기반으로 만들어 졌으며 os.urandom(24)로 SECRET_KEY 라는걸 만들어 쿠키로 사용하고 있다. 이 SECRET_KEY 값이 무엇인지 맞춰서 /flag 페이지로 이동할때 request 인자로 넣어줘야 session['flag'] 를 만날 수 있게 되는데, 현실적으로 os.urandom(24)을 때려맞추는건 불가능하다. 실제로 /flag 에 접근을 시도하면 Incorrect secret key! 라는 문구가 출력된다. 쿠기와 관련된 문제이니 F12를 눌러 개발자 도구의 네트워크 탭을 통해 session 쿠키값을 확인해 ..

워게임/247CTF 2023.09.19

[Root Me] SQL injection - Numeric - 웹해킹

Root Me에서 제공하는 웹해킹 문제 제목에서 SQL 인젝션 문제임을 알 수 있다. 문제페이지에 접속하면 이런 간단한 페이지가 하나 나온다. 왼쪽에 있는 링크를 눌러보면 News 가 뜨는데 이때 URI를 보면 news_id 파라미터가 1, 2, 3 과 같이 변경되는것을 확인할 수 있다. 여기에 작은 따옴표(%27) 을 넣어봤는데 SQLite3 에러가 뜨는것을 확인했다. 이렇게 작은따옴표를 입력했을 때 systax errer (구문 오류) 가 난다면 SQL Injection 취약점이 존재하는 것이다. 이번엔 작은 따옴표를 지우고 1 or 1=1-- - 라고 입력을 했는데 모든 뉴스가 한번에 출력된 것을 확인했다. SQL구문에서 Where 절이 항상 참이되었기 때문에 테이블 전체가 조회된 것이다. 이번엔 ..

워게임/Root Me 2023.09.11

[2021CCE] Search king - 웹해킹 / Python

2021CCE에 출제되었던 웹해킹 문제 게시판 기능에서 발생하는 전형적인 정보 노출 취약점에 대해 다루고 있다. 문제 소스는 따로 없고 문제 페이지 주소만 주어진다. 문제페이지에 접속하면 간단한 게시판 형태가 보인다. admin 이 뭔가 글을써놨는데 Pernission이 ALL 인것과 hacker 인것 두개가 나눠져 있다. All 게시물은 그냥 내용을 읽을 수 있는데 hacker 게시물은 권한이 없어 읽을수가 없다. 이 게시물 안에 문제의 플래그가 숨어있다. 이 게시판의 취약점은 내용 기반 검색을 하는데, 검색시에는 권한을 필터링하지 않는다는 것이다. cce 라고 검색하면 hacker 권한 게시물인 2, 4, 6번 게시글의 내용에 cce 라는 내용이 있기 때문에 저렇게 결과가 나오는 것이다. 저런식으로 ..

CTF/웹해킹 2023.08.20

[2021CCE] basic web - 웹해킹 / LFI

2021년 사이버공격방어대회(CCE)에 출제되었던 웹해킹 문제 생각보다 간단한 문제들이 많이 나왔었다. 이번 문제 역시도 문제 설명에 나와있는것 처럼 웹 사이트에서 자주 발생하는 기본적인 취약점을 다루고 있다. 플래그는 /flag 위치에 있다고 한다. 문제 소스코드는 별도로 주어지지 않고 문제 페이지 주소만 주어진다. 문제 페이지에 들어가면 이런 화면이 나온다. CCE 엔터테이먼트에서 CTS 가 데뷔했다고 한다.. F12를 눌러 개발자 도구에서 해당 페이지의 HTML 을 살펴보았다. 페이지 중간쯤에 2021냔 5월 CTS 의 스케줄표를 다운받을 수 있는 링크가 있는데 URI가 download.php?file= 형태로 구성되어 있었다. 쉬운 난이도의 문제라고 했기 때문에 전형적인 LFI 취약점 일것이라 생..

CTF/웹해킹 2023.08.11

[2021CCE] baby first - 웹해킹 / SQL Injection

2021년 사이버공격방어대회(CCE)에 출제되었던 웹해킹 문제 생각보다 간단한 문제들이 많이 나왔었다. 문제 설명에 나와있는것 처럼 웹 사이트에서 자주 발생하는 기본적인 취약점을 다루고 있다. 문제 소스코드는 별도로 주어지지 않고 주소만 주어졌다. 문제 페이지에 들어가면 이렇게 단순한 로그인 창 하나만 보인다. 전형적인 SQL Injection 문제이다. SQL 인젝션은 사용자의 입력을 서버측에서 적절하게 필터링 하지 못할 경우 발생하고, 공격자는 악의적인 입력값을 통해 데이터베이스에 저장된 비인가 정보에 접근하여 읽을 수 있게 된다. 여기서 해야하는 일은 1. SQL 구문을 변경시킨다. 2. Where(조건)절이 항상 참이 되게끔 한다. 3. SQL 구문을 변경시키고 나서 남은 작은따옴표를 제거해준다...

CTF/웹해킹 2023.08.09

[HackTheBox] Neonify - 웹해킹 / SSTI / Ruby

HackTheBox에서 제공하는 EASY 난이도의 웹해킹 문제 Ruby 로 개발된 웹페이지에 대한 SSTI 취약점과 관련된 문제이다. 문제 소스파일과 함께 문제페이지 주소가 주어진다. 문제 페이지에 들어가면 Ruby로 개발된 것을 어필하는듯 빨간 보석들이 보이고 중간에 입력할 수 있는 칸이 하나 보인다. 웹 페이지의 기능은 사용자가 입력한 텍스트를 아래쪽에 네온 효과를 줘서 출력시키는 것이 전부이다. 처음엔 SSTI 관련 문제인지 모르고 XSS 페이로드를 테스트 해보고자 를 입력해 보았다. 그랬더니 Malicious Input Detected 라는 문구가 출력된다. class NeonControllers < Sinatra::Base configure do set :views, "app/views" set..

[HackTheBox] FreeLancer - 웹해킹 / SQL Injection / LFI / dirb

HackTheBox 에서 제공하는 웹해킹 문제 MEDIUM 난이도이지만 꽤 어렵다고 느꼈다. 문제페이지에 접속하면 이런 화면이 나온다. 어떤 프리랜서가 본인의 포트폴리오를 올려놓은 이력서 웹사이트이다. F12를 눌러 개발자 도구를 통해 HTML 을 살펴봤다. 주석으로 숨겨진 경로가 하나 보이는데 portfolio.php?id=2 이런식으로 되어 있는것을 보고 id 파라미터를 통해 뭔가 할 수 있을거라고 생각했다. 해당 URL 로 접근해서 id 파라미터를 변경시켜 봤다. ?id=1 이라고 하면 아래쪽에 Log Cabin 뒤에오는 숫자가 1로 바뀐다. 2, 3 으로 바꾸면 마찬가지로 Log Cabin 2, 3 이런식으로 바뀐다. id=1 or true 라고 입력했더니 SQL Injection 이 성공한 듯 ..

반응형