개발자 도구를 이용해서 리소스 중에 숨겨진 flag를 찾는 문제였다.처음에는 밑에 오류를 보면 정의되지 않는 스크립트 함수가 있어서 그 함수에 대한 정보를 찾기 위해 서치했다.혹시라도 주석처리가 되어 있을 수도 있으니 말이다.하지만 찾을 수 없었다.그래서 알아보았는데
코드를 분석하여 admin의 세션을 탈취하는 문제다.이건 문제 코드이다.가장 유심히 볼 것은 /admin에 라우팅 한 부분이다.session_storage의 내용을 그대로 화면에 출력해주는 것을 볼 수 있다.아래처럼 /admin으로 페이지를 이동한다.그렇게 되면 너무나
해당 문제의 목표는 관리자 권한을 획득해 FLAG를 획득하는 것.아래에 코드는 index 페이지를 구성하는 코드이다.아래 코드는 로그인 페이지를 구성하는 코드이다.쿠키의 밸류가 username의 값으로 설정이 된다. 정말 위험한 것이 쿠키는 브라우저에 저장되기 때문에
인덱스 화면이다.3가지 페이지가 준비되어 있다.GET 메소드로 받을 수 있는 param에 스크립트 구문이 삽입 되어 있고 그 구문이 동작하는 것을 볼 수 있다.이 말은 즉슨 url에 스크립트를 삽입하는 DOM-based XSS 공격을 사용할 수 있다는 것이다.alert
지난번 xss1의 코드와 차이점은 이 vuln 단 하나였다.지난번에는 필터없이 param을 return 해주었기 때문에 스크립트 코드가 사용되었지만 render_template를 사용하게 되면서 스크립트 코드가 막히게 되었다.그래서 우회할 수 있는 방법을 구글링했는데
csrf의 실행 조건은 xss와 유사하기 때문에 xss워게임을 풀 때와 웹페이지가 비슷한 형태인걸 볼 수 있다.코드를 살펴보자 vuln페이지 에서는 param이 필터링 없이 그대로 화면에 출력되고 있다.이는 xss와 csrf에 매우 취약하다는 것인데 허나 출력되기 이전
CSRF라고 하면 로그인 되어 있는 사용자가 특정 게시물, url, 메일을 열람하거나 접속했을 때 서버에 악성 http요청을 보내는 공격 기법이다.이번 워게임에서는 가상의 유저가 admin session을 갖고 로그인 한 상태일 때 그 권한으로 서버에 pw으로 강제로
먼저 노드 js의 express 미들웨어를 알아보자아래 코드를 보면 각 위치에 것들이 무슨 역할 하는지 알 수 있다.app.get : get요청으로app.get(/login,:/login 경로에app.get(/login, function(req, res){res.sen
이번 문제는 로그인 방법을 우회하는 sql_injection이나 admin psswd를 알아내는 blind_sql_injection을 사용하여 flag를 쟁취할 수 있다.sql_injection은 매우 쉬운 난이도라고 할 수 있지만 blind_sql_injection
아래는 서버 코드의 소스코드이다.ping함수를 유심히 보자host에 입력값을 받는 것을 볼 수 있는데 ping -c 3 "ip주소" 이런식으로 받는 것이 정상적인 작동이다.하지만 우리는 Command Injection이라는 취약점을 사용해서 flag.py의 내용을 확인
먼저 코드를 보자다른 코드 말고 upload.php만 보도록 하겠다.php부분을 보면 업로드할 파일에 대해 어떠한 검사도 하지 않으므로, 웹 셸 업로드 공격에 취약하다는 것을 알 수 있다.그렇다면 우리는 php의 system을 이용해서 flag.txt 를 보여달라는 쉘
아래 사진처럼 upload페이지에서 파일을 업로드 하면 메인 페이지에 파일 리스트가 생긴다.그 다음 코드를 보자1.코드에서 upload부분을 보면 uploads라는 디렉토리 안에 POST 요청으로 받은 페이로드로 파일을 만들어서 저장한다.2.그리고 /read 페이지에서
아래 코드를 보자 1500~1801 사이의 랜덤한 포트에서 내부 로컬 서버를 돌린다.그리고 img_viewer 페이지에서는 URL을 필터링하고 혹시 URL이 없으면 기본 호스트와 포트는 localhost:8000으로 한다.에러가 나게 되면 error.png를 반환하고에
이번 문제는 호박을 10,000번 클릭하면 되는 문제였는데 자바 스크립트(제이쿼리)로 10,000번 반복하면 되는 일이었다.아래는 웹페이지다.클릭되는 부분의 block의 id를 찾고 싶어서 개발자 도구로 찾아봤더니 jack-target이라는 id를 사용하고 있음을 알
먼저 문제의 코드를 살펴보자코드를 보면 cmd를 GET으로 받는 것 같고 입력이 없으면 ?cmd=cmd를 반환한다.하지만 GET요청일 때 그저 출력만 하고 명령어 실행은 하지 않는 것을 볼 수 있다.cmd가 있는 걸 보면 command injection인데 명령어를 실
다운로드는 dvwa 깃허브에 가서 한다.https://github.com/digininja/DVWA바로 이곳이다.그 후 apatche 서버의 root 디렉토리에 위치시켜준다.그리고 setup.php로 들어가는데 처음에는 오류가 하나 뜰 것이다.그건 config
첫번째 문제는 간단한 Brute Force 기법으로 풀 수 있는 문제이다.파이썬으로 코드를 짤 수도 있겠지만 이번에는 버프슈트를 이용해보았다.전에 드림핵 워게임에서도 Brute Force 기법은 자주 사용했었다.워게임과 다른점은 힌트같은 것도 없고 그저 취약한 웹사이트
아래는 저번에 배웠던 Command Injection 공격이 가능한 취약한 웹페이지이다.입력한 ip에 ping을 보내는 것 같다.한번 로컬호스트 ip를 입력 해보았다.내 서버는 아파치이고 한글 윈도우에서 돌고 있다.그렇기 때문에 이 웹페이지에서는 한글이 인코딩 되지 않
이번 문제에 들어가기 앞서서 csrf의 핵심 개념을 복습해보면 xss와 달리 쿠키/세션을 탈취 하는 것이 아닌 클라이언트의 로그인이 되어있는 세션을 이용해서 사용자가 원하지 않는 http 요청을 보내는 것이 기본적인 개념이다.이번 문제에서는 내가 admin이라는 사용자
FI는 URL에서 파일을 GET 할 수 있는 전제에 공격자가 악성 서버 스크립트를 서버에 전달하여 해당 페이지를 통해 악성 코드가 실행 되도록 하는 취약점이다.그 파일의 경로에 따라서 LFI(Local File Inclusion),RFI(Remote File Inclu
File 취약점 역시도 저번에 드림핵 강의와 워게임을 풀면서 다루어 보았다.그 때 배웠던 것을 참고하면 파일 업로드 취약점은 파일의 형식과 확장자 등의 대한 필터링이 없기 때문에 쉘 코드나 악성 스크립트 파일을 서버에 업로드 하여 서버를 공격할 수 있게 되는 취약점이다
Completely Automated Public Turing test to tell Computers and Humans Apart의 약자로, 컴퓨터와 사람을 구분 짓기 위한 완전 자동 튜링 테스트를 말한다.사용자 입장에서는 크게 다르지 않지만, CAPTCHA와는
이번 문제는 SQL_Injection 취약점을 공격하는 문제이다.먼저 코드를 보지 않고 웹페이지만 살펴보자.User ID를 입력하면 그 유저의 First name과 Surname이 나오게 된다.이걸로 유추해봤을 때 이 웹의 sql문은대충 이런 식의 SQL 문일 것이다.
이번 문제는 low단계에서는 매우 간단하다.object가 세션을 예측할 수 있는 것이고 패턴을 파악하는 것이다.아래처럼 세션을 새로 받거나 새로고침을 할 때마다 세션의 value가 1씩 증가하는 것을 볼 수 있다.이렇게 세션의 값을 예측할 수 있었다.너무 짧아서 후에
이번 문제는 CroosSiteScripting(XSS) 중 의 기법 중 하나인 DOM XSS문제이다.이 문제를 풀기 앞서 DOM이 대체 무엇이고 DOM XSS는 storedXSS와 ReflectingXSS와 다른 점이 무엇인지 알아보았다.문서 객체 모델(The Docu
이번 문제는 Reflected XSS 이다.DOM XSS와 헷갈릴 수도 있지만 서버의 응답에 스크립트 코드가 포함되어 원하지 않은 상황이 생긴다는 것에 큰 차이점이 있다.url의 param이 서버로 그대로 가기 때문이다.그래서 이러한 취약점은 보통 검색을 할 때 많이
이번에는 XSS에서 가장 보편화되게 잘 알려진 Stored XSS이다.말 그대로 서버에 데이터베이스에 악성 스크립트를 저장한 후 그것을 꺼내오고 화면에 출력할 때마다 스크립트가 실행되게 하는 취약점이다.먼저 문제를 보자.아래처럼 작은 게시판이 형성되어있고 입력을 하게
먼저 CSP란 (Content Security Policy)의 약자로, 웹 브라우저에서 각종 XSS공격을 막기위해 만들어진 정책으로, 아무나 인라인 자바스크립트나 CSS를 입력할 수 없도록한다.라고한다.CSP는 특정 사이트를 신뢰하여 스크립트던지 이미지던지 스타일시트라
이번 문제는 javascript를 해석하는 문제였다.먼저 웹페이지를 보자아래처럼 말 그대로 success라는 Phrase를 제출하게 되면 성공이다.하지만 ChangeMe라는 단어는 결코 바뀌지 않고 제출된다.이유를 개발자도구에서 살펴보았다.아래는 소스를 찾아본 것인데
이번 과제는 저번과 달리 DVWA의 웹페이지를 security level : medium으로 모의해킹하게 된다.그래서 이번 과제부터는 가상 머신에 칼리 리눅스를 설치하고 윈도우에 설치되어있는 DVWA서버를 원격으로 해킹하기로 했다.아무래도 원격으로 해킹을 하는 것이 좀
/* 웹서버 환경: Window 10 공격 클라이언트 환경: Kali linux (VMware 구동) */
이번 문제는 csrf이다.csrf의 관한 내용은 아래 low레벨 풀이에서 볼 수 있다.이번 문제에서 low와 다른 점이라고 한다면 요청 패킷의 헤더에서 Referer를 검사한다.Referer 라는 것은 이전에공격자는 게시물에 악성코드를 담거나 악성파일을 심어 놓고 타겟
\*/
low풀이
/* 웹서버 환경: Window 10 공격 클라이언트 환경: Kali linux (VMware 구동) */
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-8-DVWA-write-up-SQLInjection-row
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-8-DVWA-write-up-Blind-SQLInjection-row
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-10-DVWA-write-up-WeakSessionIDs-row이번 문제는 Sessi
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-10-DVWA-write-up-WeakSessionIDs-row-qx4x69mmDOM
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-12-DVWA-write-up-Reflected-XSS-rowlow에서도 설명했었지만
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-13-DVWA-write-up-Stored-XSS-row먼저 low때와 같이 Mess
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-14-DVWA-write-up-CSP-Bypass-row이번 문제에서 CSP 설정을
low풀이https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-15-DVWA-write-up-Javascript-rowlow레벨에서보다 js 코드를
먼저 아래 코드를 보자.핵심은 vuln엔드포인트이다.공격 시나리오를 생각을 해보자.1.사용자가 vuln 페이지에 악성 param이 담긴 url에 접속한다.2.vuln페이지에서 xss_filter를 통과한다.3.param에 적혀있는 악성 코드가 실행되어서 그 이용자의 쿠
이번 문제를 풀면서 많은 시행착오가 있었다.먼저 아래의 문제 코드를 보자주목해야할 부분은 아래의 함수이다더 많은 필터링들이 추가가 되었다.처음부터 필터링을 하나 하나 걸러가며 무엇으로 공격하면 좋을지 짜고 시작하는게 좋았을 것 같다.먼저 생각했던 것은 필터링 되는 것들
먼저 아래 코드를 보자구조는 다른 문제와 같기 때문에 설명을 생략하겠다.vuln 엔드포인트를 보면 그냥 xss 공격에 완전히 노출되어 있다.먼저 일반적인 xss 공격을 해보자 우회 조차도 필요없다아래처럼 우리가 이용할 vuln페이지의 param에 스크립트 코드를 삽입했
이번 문제를 풀면서 애먹었던 점1.로컬 서버를 포트포워딩 하지않고 해맸음 (셀레니움의 입장을 생각하면 해결)2.오타와의 싸움3.깃허브 호스팅의 오류일단 아래 코드를 살펴보자 이전과 달라진점을 찾아보면 csp에서 플러그인에 대한 제재와 가장 중요한 건 vuln()에서 v
먼저 코드를 살펴보자login()에서는 csrf를 체크한다.일단 csrf를 만드는 과정이 고정되어있다는 것을 알았다.근데 request.remote_addr이 뭔지 몰라 알아보았더니 요청을 보내는 사용자의 ip주소였다.그렇다면 csrf 토큰은 username과 사용자의
아래는 서버 코드이다.코드를 보면 xss에 대한 csp가 설정되어 있고 https://ajax.googleapis.com;의 출처를 신뢰하고 있다아래와 같이 일반적인 XSS를 시도했을 때는 CSP에 걸린다.하지만 아래처럼 이 출처를 기억하자이 출처를 통해 an
이번 문제에서는 정말 많은 시간을 투자했다.대충 의도를 파악하는데는 조금의 시간이 걸렸지만 그 이후 여러가지 삽질을 했다.가장 큰 이유는 코드 분석을 대충했다는 것이다.아래를 보자.모든 페이지를 눈여겨 봤어야했고 mypage에서 APItoken이 input이 가능했다는
아래 코드를 보자index.phpparam의 페이지를 include하고 :,/,.. 를 필터링한다.report.php봇을 이용하여 셀레니움의 역할을 해준다.경로를 입력하고 폼을 제출하면 봇에게 방문하도록 파이썬 스크립트가 실행된다.vuln.php밑에 js파일을 src로
이번 문제는 저번 문제에 비해 난이도가 많이 높지 않았다.그냥 배웠던 내용을 그대로 사용하면 됐다.index.phpreport.phpvuln.php404.php이번 문제는 구조는 전 문제와 비슷하지만 filter.js가 static안에 있다.그래서 경로조작 공격이 어렵
아래는 서버코드이다유의깊게 봐야할 코드는 아래의 코드이다.위처럼 검색결과가 있다면 iframe을 생성해준다.flag는 로컬호스트에만 되어있다.우리가 공격할 대상은 로컬 호스트이다.그러면 flag를 한글자씩 서치하고 그 문자가 있다면 frame이 생성될 것이기 때문에 f
먼저 아래 서버 코드를 보자.DOM XSS라 그런지 기분 탓인지 모르게 코드가 별게 없어 보인다.vuln.htmlDOM-XSS는 브라우저 단에서 일어나기 때문에 아무래도 웹 페이지에 스크립트 코드가 핵심일 것이다.확실한 건 일반적인 XSS는 render template
이번 문제에서 알아야하는 비밀번호는 아스키코드와 한글로 되어있다고 한다.이 말은 즉슨 일반적인 특수문자부터, 영문자, 숫자를 구했던 아스키 코드와는 다르게 풀어야 한다는 것이다.그리고 아래 sql문을 보니 Character set이 utf8로 되어있다.더 공부해보니ut
이번 문제는 굉장히 빨리 풀 수 있었다.운이 좋게도 강의의 내용을 잘 응용할 수 있었기 때문이다.아래를 보자먼저 위처럼 전 블라인드 인젝션과 크게 다르지 않아 보이는 웹페이지였다.허나 참인 값을 입력해도 exists 문구는 나타나지 않았다.에러로 푸는 것을 알았기에 e
이번 문제는 굉장히 빨리 풀 수 있었다.운이 좋게도 강의의 내용을 잘 응용할 수 있었기 때문이다.아래를 보자먼저 위처럼 전 블라인드 인젝션과 크게 다르지 않아 보이는 웹페이지였다.허나 참인 값을 입력해도 exists 문구는 나타나지 않았다.에러로 푸는 것을 알았기에 e
아래는 서버 코드이다./t와 /n등 필터링이 추가되어서 공백 우회가 어려울 것 같다.또한 lower로 변환한 후 필터링 하기 때문에 이전에 Union같은 대소문자 우회도 어렵겠다.그래서 이번에야말로 concat함수나 reverse함수를 써보려고 했다.애초에 union은
먼저 아래는 서버 코드이다SQL코드를 대충 보니 'union', 'select', 'from', 'and', 'or', 'admin', ' ', '\*', '/'이 필터링 되고 있음을 알았다.바로 떠오른 것은 reverse함수와 concat함수 그리고 대소문자 탐지 우
아래는 서버 코드이다위 코드만 봐도 uid에서 어떤 검사도 없는 것을 알 수 있다.먼저 아래처럼 존재하지 않는 uid를 입력하면 fail이 된다.아래처럼 admin으로 입력하면 error라고 뜬다.upw가 form에서 required속성이 있어서 공백으로 쓸 수가 없었
아래는 서버 코드이다.코드를 보면 1.shell_exec으로 먼저 curl을 디폴트로 실행시켜주는 것을 볼 수 있다.2.문자열에 http가 있는지 검사한다.3.이상한 파일을 삽입하는 것에 대비해 md5로 url을 해싱한다.4.그 후 cache디렉토리 안에 그 md5 해
아래는 서버 코드이다.코드를 보면1./file 페이지에서는 파일을 읽어서 보여준다 파일 다운로드 취약점이 있는 것이다.2./admin 페이지에서는 cmd를 get으로 받아서 실행시켜준다 하지만 API-KEY를 요구한다.내가 해야할 것은 /file페이지에서 시스템의 메인
아래는 서버 코드이다.upload.php만 보자코드를 보니 확장자명이 php와 관련 되어 있는 것은 다 필터링 하는 것을 볼 수 있다.웹쉘을 업로드 하지 못하게 하려고 그러는 것 같다.하지만 운이 좋게도 강의에서 배운 내용이 떠올랐다.apache에서 .htaccess라
아래는 서버 코드이다.키가 되는 곳은 index.php의 바로 아래 부분이다.cmd를 받아 메모리에 저장한다.lua script를 사용할 수 있다.앞서 배웠던 redis.call 같은 것들을 말이다.redis에서 굉장히 장점이 되는 것이 빠른 속도인데 그 비결은 바로
이번 문제는 전에 풀었던 드림핵 워게임과 유사해서 쉽게 파악하고 풀 수 있었다.아래는 웹 소스 코드이다.나름 친숙한 nonce가 보인다.아래는 웹페이지다.Error Report를 누르면 아래와 같은 화면이 나온다.admin이 url을 확인하고 접속하는 것 같다.inje
아래는 서버 코드이다.서버 코드를 해석해보면 처음에 쿠키가 세팅 되어있지 않다면이렇게 쿠키를 세팅해준다.쿠키 이름은 user_lv이고 값은 1이고 만료시간은 time()\*86400 x 30이다.만료시간을 엄청 크게 설정해주었다.그리고 밑에 코드를 해석하면 is_num
아래는 서버코드이다.이 문제에서 시간을 정말 많이 썼다.코드 자체는 이해하기 매우 쉬운 난이도였다.chall4 세션이 isset인지 확인하고 key값과 chall4이 일치하면 flag를 주는 문제였다.그리고 웹페이지에 나와있는 암호는 10000000 ~ 99999999
아래는 메인화면이다 login과 join이 보인다.join으로 들어가보았다.join은 누르면 위처럼 access denied가 뜨길래 login으로 들어가 보았다.login창에서는 그냥 말 그대로 login하는 곳이었다.아래처럼 login페이지에서 post요청을 보내고
이번 문제는 10점짜리라서 그런지 굉장히 쉽게 풀렸다.아래는 서버 코드이다.코드를 차근차근 해석하면 cookie세팅이 되어있지 않을 때 쿠키에 user에는 guest, pw에는 123qwe를 20번 base_64로 인코딩하고 그 안에 여러 숫자들을 각정 특수문자로 치환
아래는 서버 코드이다.코드를 해석하자면 일단 GET으로 val의 값을 받는다.그리고 눈에 띄는 것은 전에 수도 없이 봤던 정규식이다.무엇 무엇을 필터링 하고 있는지 확인한다.dbconnect를 보고 드디어 sql인젝션 문제임을 확신했다.rand 함수로 5개 중 하나의
이번 문제는 쉬어가는 느낌이 강했다.아래를 보자.아래는 문제의 웹페이지다.개발자 도구로 왼쪽 위에 있는 hackme라는 o를 살펴보았는데이러한 코드들이 있었다.onclick이 보여서 마구 클릭했더니 한번 클릭할 대마다 left가 1px씩 늘어나느 것을 볼 수 있었다.6
아래는 서버 코드이다.코드 해석은 어렵지 않았다.코드를 해석하면 get파라미터로 val이라는 변수에 value를 받고 있었고 $pat이라는 정규표현식에 val이 적합하다면 flag를 주는 내용이었다.이번 문제를 통해서 정규표현식을 해석하는 방법을 좀 더 익힐 수 있었다
서버 코드에 난독화 된 스크립트가 있어서 보기 좋게 정렬해봤다.사실 보기 좋은 건지도 잘 모르겠다.
이번 문제는 굉장히 빨리 풀 수 있었다.아래는 페이지의 소스이다.스크립트 부분을 해석하면 url에서 .kr이 몇번째인지 찾고 그 곳에 30을 곱한다.그리고 그 값이 입력한 값과 일치한다면 location.href로 ?처음 값에 입력한값을 곱한 곳으로 이동한다.여기서 헷
먼저 old-15로 들어갔는데 들어가자마자 아래와 같이 디나이 되었다.그 후 webhacking.kr의 인덱스 페이지로 이동되었다.다시 클린한 후 아직 location이 안된 상태에서 개발자 도구로 코드를 보았다.아래 코드를 보면 a태그에 링크를 ?getFlag로 해놓
다른 풀이가 있는지는 잘 모르겠지만 너무나도 쉽게 풀려서 좀 당황한 문제였다.문제의 의도가 무엇인지는 잘 모르겠다..웹페이지에는 큰\*하나와 작은\*하나가 왼쪽 위에 위치하고 있다. 일단 아래처럼 바로 개발자 도구로 들어가서 코드를 보았는데.위에 function을 조금
이번 문제는 푸는데 1분 걸린 거 같다..이 문제역시도 10점짜리이기도 하고 자바스크립트를 조금 해석하고 콘솔에 쓸 수 있냐 없냐를 보려고 했던 것 같다 ..들어가자마자 입력폼이 있었는데 그건 보지 않고 바로 개발자 도구로 element를 확인했다.unlock이라는 값
처음에 들어가자마자 입력 폼이 보이길래 ' -- 를 입력해서 간단하게 sql인젝션 테스트를 했다.결과는 아래처럼 error가 떴다.근데 새로고침하거나 나갔다 들어와도 error는 계속 있길래 세션이 유지되고 있구나 해서 쿠키에 관한 문제인가 생각했다.그래서 아래와 같이
먼저 문제를 관찰했다.아래는 웹페이지였고아래는 쿠키였다.쿠키에 st가 추가되어서 이게 키 같았다.아래는 페이지 소스이다.대충 해석하면 칸들이 비어있지 못하게 하는 것이었다.그리고 captcha의 value가 같은 지 확인한다.아래처럼 정상적으로 입력해보았는데아래와 같은
이번 문제는 <script>alert(1)</script>를 인젝션 하는 문제였다.아래는 내가 한 시도들이다.사진 위가 설명이다.1.먼저 웹페이지다.2.ㄹㅇㄴ을 입력해보았는데 아래와 같이 화면에 출력되었다.3.대놓고 스크립트문을 주입했는데 no hack이라는
이번 문제는 <script>alert(1)</script>를 인젝션 하는 문제였다.아래는 내가 한 시도들이다.사진 위가 설명이다.1.먼저 웹페이지다.2.ㄹㅇㄴ을 입력해보았는데 아래와 같이 화면에 출력되었다.3.대놓고 스크립트문을 주입했는데 no hack이라는
아래는 웹페이지이다.리눅스에서 ls-al 명령어로 파일 정보들을 보여주고 file파라미터에 파일 이름을 확장자명을 제외하고 입력하게 되면 파일의 내용을 보여주는 것 같다.flag를 입력하니 아래와 같이 flag is in the code라는 내용이 나왔다.flag가 코
아래는 서버 코드이다.코드를 해석하면 get파라미터로 id에 받는 value에 admin이 있는지 확인한다.있으면 exit한다.그 후 urldecode로 id를 디코딩 해서 다시 getid에 넣어주고 그게 admin이라면 solve해준다.그냥 admin에 걸리지 않게
아래는 서버 코드이다.코드를 해석하면 no파라미터에 value를 받아서 아래 정규식으로 검사한다.그 후 다음 쿼리에 삽입한다.그리고 id가 admin이 되면 solve를 해주는 형식이다.먼저 아래처럼 no를 1로 했더닌 guest가 나왔다.코드를 보니 admin의 no
먼저 아래가 웹페이지이다.아무 이름이나 누르게 되면 투표가 되고 한번 더 하면 아래와 같이 이미 했다고 나온다.그리고 맨 아래에는 나의 이름이 있다.나갔다 들어와도 계속 이미 투표했다고 나오는걸 보면 cookie에 뭐가 있나보다.쿠키를 확인했는데 역시 vote_chec
1번문제는 간단하게 get 파라미터로 hehe를 페이로드로 보내면 됐다.2번은 아래처럼 post와 post2를 동시에 post요청으로 보내면 됐다.먼저 파이썬 스크립트로 요청을 보내고 body를 봤더니 next가 있다.버프슈트로 post=hehe&post2=hehe2로
처음에는 아래오 같은 알림창이 뜬다.debug를 해달라고 한다.그리고 아래와 같은 script 코드를 이쁘게 정리해보았다.아래가 이쁘게 정리된 코드이다.사실 내가 푼 방식으로 푸니까 좀 맥없이 문제가 풀려서 내 방식이 맞는지는 모르겠다..아무튼 위 코드를 처음에는 해석
아래는 서버 코드이다.45점 짜리 sql_Injection 문제였다.코드를 찬찬히 해석했는데 먼저 addslashes함수에 대해서 자세히 알아봤다.쿼터와 NULL에 앞에 슬래시를 붙여서 문자로 인식되게 하는 함수였다.그리고 그 밑에 utf-8,euc-kr로 addsla
아래는 서버 코드이다.아래가 웹페이지인데 딱 봐도 sql injection의 냄새가 난다.아래에 아이디와 비밀번호 부분에 인젝션을 해야한다.id는 addslashes로 필터링 되어있고 이번에는 euc-kr utf-8로 인코딩 되어 있지도 않아서 멀티 바이트로 우회할 수
아래는 스크립트 코드이다.처음 웹페이지에 들어가면 빠른 속도로 한 글자씩 만 flag가 보여지게 된다.네트워크탭에 들어가면 아래서 response.text를 보면서 한 글자씩 알 수 있다.그렇게 한 글자씩 메모하면서 하다가 출제의도가 이게 아닌 거 같아서 스크립트 코드
아래는 서버 코드이다.대충 해석하면 reomote addr을 변조하고 replace우회를 피해서 마지막에는 127.0.0.1로 맞추는 문제였다.이때는 $\_SERVER'REMOTE_ADDR'와 혼동하여 패킷을 잡아서 접속자의 ip를 변조한다고 생각했다.일단 아래처럼 구
아래는 처음 들어갔을 때 화면이고 경고문이 있다.들어가서 회원가입 하고 로그인 할 때는 딱히 트릭은 없다.아래는 서버 코드이다.코드는 아래 정규식으로 필터링하고 있고 쿼리문도 아래 쿼리문을 사용하고 있다.나는 '아이디 인젝션', '비밀번호 인젝션' 부분에 인젝션 쿼리를
코드가 전과 다르다고 하면 결과값의 유무가 아닌 admin 아이디를 찾고 있다.이번 문제의 정규식도 아래와 같은 문자들을 필터링한다.그래서 이전에 먼저 공격 계획을 짰는데 아래와 같이 하면 될 거 같다.이번 역시 우회하는 문자가 핵심적인 것들을 필터링하지 않아서 쉬운
아래는 서버 코드이다.코드를 보아 하니 쿼터를 필터링하는 것 같다.아래에 문자들을 필터링 한다.지금껏 쿼터들을 필터링 했던 문제들을 생각하면 전부 괄호로 쿼터를 우회했던 것 같다.이번 문제에서는 친절하게도 no=에 ''가 없다.일단 admin의 no는 안알려준다.그래서
아래는 서버 코드이다.아래와 같은 문자를 우회하고 있다.쿼리가 2개인데 위에 쿼리를 먼저 실행해보겠다.아래와 같이 처음에 gremlin 문제와 같은 방식으로 참이되게 하여 쿼리의 결과가 있게 만든다.그럼 아래처럼 Hello admin이라는 문자열이 출력되는 것을 볼 수
아래는 서버코드다.전 문제들과 비교했을 때 코드를 보면 특별한 건 없고아래 정규식 문자들을 필터링하는 것 까지는 똑같다.허나 공백을 필터링한다.하지만 지금껏 문제를 풀 때 자연스럽게 탭을 url인코딩한 %09로 우회하고 있었다.그걸 사용하면 될 거 같다.아래 pw에 인
이번 문제에서도 id가 admin인 데이터베이스를 찾고 있다.근데 추가적으로 필터링하는 것이 or와 and가 있다.지금까지 나도 모르게 or는 ||로 써왔는데 그냥 그대로 쓰면 된다 ...or를 우회하는 문자는 ||이고 and를 우회하는 문자는 &&이다.이건 프로그래밍
아래는 서버코드이다.대충 파악하면 기존에 필터링하는 문자들과 or, and를 전 문제처럼 필터링하고 있다.쿼리가 2개 있고 대충봐도 blind sql injection으로 풀어야하는 것이 보인다.orc 문제와 같은 전개로 풀어보겠다.이번 문제는 조금 다르게 비트를 이용
아래는 서버 코드이다.이번 문제는 정말 매우 쉬운 난이도이지만 코드를 잘 살피지 않은 나는 시간을 좀 쓰게 되었다.코드를 보면 싱글쿼터와 admin이라는 문자열을 필터링 하고 있다.싱글 쿼터를 어떻게든 닫아줘야 문자열 우회를 할 수 있을 것 같아서 아래와 같은 시도들을
아래는 서버 코드이다.먼저 strtolower함수로 대문자 우회를 방어하고 있었다.하지만 익숙한 replace함수가 보인다.replace함수로 admin을 공백으로 치환해주고 있었다.그럼 지금까지 해왔던 것처럼 adadminmin이런식으로 우회하면 될 것 같다.아래처럼
서버 코드를 보면 이전에 기본적으로 있던 정규식외에 다른 정규식도 없고 id가 admin인 데이터를 가져오면 되는 문제이다.아래에서 pw 부분에 인젝션을 시도해 답을 가져와야 한다.바로 대입해보면서 생각해낸 인젝션 쿼리는 아래와 같다.전자의 쿼리를 거짓으로 만들고 or
![](https://ve
아래는 서버 코드이다.이번에도 blind sql injection이다.전과 다른 점은 ascii와 싱글 쿼터를 필터링하고 pw 뒤에 no라는 추가적인 파라미터가 존재한다는 것이다.다만 pw는 ''로 되어있고 no는 싱글쿼터가 없다.처음에는 코드를 잘 확인하지 않고 no
아래는 서버 코드이다.이번 문제도 비밀번호 일치 문제인걸 보니 blind sql injection이다.이번에는 substr, asciia,emdgh akfrheh like와 16진수 문자열 우회 마저도 필터링하고 있다.하지만 이제 이런 문제들이 반복적인 패턴으로 다가와
아래는 서버 코드이다.이번 문제에서는 아래에 공백을 우회하는 개행문자들을 필터링하고 있다.그리고 아래를 보면 shit파라미터에 받는 내용이 from prob 사이에 들어간다.결국 공백을 만들어 쿼리가 참이 되게 해야하는 문제이다./\*\*/인 주석을 사용해보았지만 i
아래는 서버 코드이다.코드를 보아하니 result id로 admin을 가져와야 한다.아래 쿼리에 인젝션 할 수 있는데 싱글쿼터가 필터링 되어있기에 쿼터를 사용한 우회는 힘들 것으로 보인다.하지만 like라는 취약한 구문을 사용하고 있다.like에서는 %와 \_가 있는데
아래는 서버 코드이다.이번 문제는 쿼터가 필터링 되어 있고 쿼리에 쿼터가 있어서 쿼터를 우회해야하는 문제이다.예전에 봤던 유형이라 보자마자 해답을 알 수 있었다.획기적인 방법이라 기억에 더 남았던 것 같다.백슬래시를 사용하여 두번째 쿼터를 일반 문자로 인식하게하고 '
이번 문제는 이전에 공부할 때 풀었던 문제이다. 다시 복습 차원에서 풀어보도록 하겠다.공부한 것을 활용하여 처음 푸는 느낌으로 문제를 풀어나갔다.아래는 서버 코드이다.코드를 분석하기 전 먼저 웹페이지 기능을 분석하겠다.memo와 flag는 이전에 경험을 토대로 보았을
이번 문제는 이전에 공부할 때 풀었던 문제이다. 다시 복습 차원에서 풀어보도록 하겠다.공부한 것을 활용하여 처음 푸는 느낌으로 문제를 풀어나갔다.아래는 서버 코드이다.index.phpreport.phpvuln.phpfilter.js코드를 분석하기 전 웹 사이트를 분석해
이번 문제는 이전에 공부할 때 풀었던 문제이다. 다시 복습 차원에서 풀어보도록 하겠다.공부한 것을 활용하여 처음 푸는 느낌으로 문제를 풀어나갔다.아래는 서버 코드이다.index.phpreport.phpvuln.php404.php이전 문제와 코드 상에서 눈에 띄게 다른
아래는 서버 코드이다.먼저 페이지를 분석해보자.뭐 별게 없다.코드를 살펴보니 login, logout, /user/<int:useridx>, /admin 이라는 페이지가 숨겨져 있다.아래는 login페이지이다.sql injection을 시도해보았지만 코드 상에서
이번 문제는 이전에 공부할 때 풀었던 문제이다. 다시 복습 차원에서 풀어보도록 하겠다.공부한 것을 활용하여 처음 푸는 느낌으로 문제를 풀어나갔다.아래는 서버 코드이다.이 문제를 전에 풀 때 injection을 API token이 아닌 password에 했던 삽질이 생각
대놓고 csp를 설정하는 문제이다.어떤 csp를 허용하면 되는지 보면 된다.아래 코드를 보자웹사이트를 분석해보자.처음에 verify csp페이지에서 script src 'unsafe inline'으로 inline script에 대한 보안을 아예 해제해서 제출하면 아래처