Web

CSS Injection이란

최근에 웹 공부 중에 NGA님꺼 블로그 보고 정리해봤습니다 https://ngaa.tistory.com/2?category=684400 CSS Injection이란 -> 사이에 아무런 검증이 없고 값을 추가할 수 있을 때 임의의 주소에 요청을 보낼 수 있는 것이다. 웹은 뭔가 사용자의 input벡터를 먼저 다 찾고 sanitizer가 없으면 웬만하면 취약점인듯 바이너리는 최소한 stack canary같은 gcc가 알아서 보호기법도 걸어주고 하는데 어지럽다. POC

2022.03.18 게시됨

[ web & v8] Web Assembly, wasm에 대해서 포스팅 썸네일 이미지

Web

[ web & v8] Web Assembly, wasm에 대해서

Web Assembly로 할 수 있는 것들 - 웹 브라우저에서 windows 95 돌리기 - Unity로 프로그래밍한 게임을 웹 브라우저로 실행 - 티스토리 이미지 편집 기능 또한 Web assembly를 이용함 JS대신 왜 굳이 Web Assembly를 이용하냐? - Java Script는 High Level Language이기 때문에 변수의 타입을 자동으로 지정해주고 느린 부분을 최적화 해주는 작업이 필요하다. 이 과정은 v8 엔진의 TurboFan에서 일어난다. TurboFan을 여러번 거쳐서 최적화된 바이트 코드는 Ignition에서 실행되게 된다. Web Assembly는 이런 과정과는 다르다. Web Assembly는 Liftoff에서 실행되는데 이것은 Assembly를 바로 실행시켜주기 때문..

2022.01.31 게시됨

[ web ] websocket통신 시에 checksum이 같은 이유. 포스팅 썸네일 이미지

Web

[ web ] websocket통신 시에 checksum이 같은 이유.

산학연 일을 하는 중에 websocket을 이용하고 패킷 정리하는 일이 있었다. 엑셀로 정리해나가면서 특이했던 점은 각 세션마다 Checksum이 같다는 것이다. 처음에는 내가 wireshark에서 옮기는 과정에서 실수한줄 알았다. 왜 세션이 다른데도 Checksum이 항상 같은지 이유를 알아보자. 먼저 웹통신을 하는 과정은 이렇다. 레퍼런스 코드 1. AWS 인스턴스에서 웹소켓 서버를 돌린다. 2. 웹에서 ws://를 통해서 웹 소켓 통신을 한다. 위의 과정을 wireshark로 잡아보면 요로코롬 나온다. 보면 checksum이 0xa7d3으로 패킷들의 체크섬이 모두 같다. 체크섬이 같은 이유를 생각해봤다. 먼저 체크섬이란 오류를 잡아내기 위해서 헤더의 값들을 모두 더하여 CRC연산을 하는 것이다. 즉..

2022.01.27 게시됨

[ Web ] 정규표현식 포스팅 썸네일 이미지

Web

[ Web ] 정규표현식

1. 원하는 문자 그대로 입력해주기( 대소문자, 공백을 구분함 ) ex) 찾고자 하는 값 "Hello" --> Hello wolrd 2. ^who는 who로 시작하는 텍스트를 선택, who$는 who로 끝나는 텍스트 선택 ex) 찾고자 하는 값 "who"--> ^who ---> who is who $who ---> who is who 3. .은 어떠한 임의의 문자를 지칭한다. ex) ..... ---> 5글자짜리 아무거나 ---> Hello wolrd 4. [ ] 안에 있는 것에 해당하는것이 있으면 선택, [ ] 하나는 문자 하나에 1대1 매칭됌. 두 개 이상문자를 선택하려면 [abc][abc] 이렇게 써야함. range를 적용하면 더 줄이기 가능 [abcde][abcde] --> [a-e][a-e], ..

2022.01.24 게시됨

[ AWS ] 도커를 이용해 AWS에서 배포하기 포스팅 썸네일 이미지

프로그래밍

[ AWS ] 도커를 이용해 AWS에서 배포하기

AWS 계정 및 인스턴스 접속 - 처음 AWS에 가입하게 되면 Free Tier요금제를 이용해 무료에 가까운 저렴한 가격에 이용할 수 있다. - 가입을 해준 다음 EC2를 이용해 가상 서버를 만든다. 이후에는 우측에 인스턴스 시작에서 Free tier용 원하는 이미지를 선택한다. 나는 ubuntu18.04 LTS x86을 선택했다. 키페어는 ssh접속 시에 사용하는 private key이다. 다운로드 받아 리얼 해커들이 못 털어가게 꼭꼭 숨겨놓자 인스턴스 선택 후 연결 버튼을 누르면 ssh로 어떻게 접속하는지 나온다. ex) ssh -i ~~~ 인스턴스를 ssh로 할시에 vi를 써야 하는데 렉이 많이 걸리니까 vscode로 연결해서 작업할 예정이다. 연결 방법은 아래 블로그를 참고했다. https://k..

2022.01.21 게시됨

[ Tistory ] 도메인 구입과 22년도 리뉴얼한 티스토리 설정 포스팅 썸네일 이미지

TOOLS & Error

[ Tistory ] 도메인 구입과 22년도 리뉴얼한 티스토리 설정

먼저 달라진 점은 Gabia에서 제 이름으로 된 도메인을 구입하여 sangjun.xyz --> psj-study.tistory.com로 2차 도메인을 통해 접속되게 만들었습니다. 앞으로 블로그에 접속하실 때 sangjun.xyz 많은 이용부탁드립니다.ㅎ 1. 티스토리 스킨 변경 - 후보로 봐둔 4가지 #심플형 스킨들 중에 결국 베이스 캠프로 갈아타게 되었다. 베이스 캠프로 정한 이유는 이렇다. 1. IT카테고리에 어울리는 UI를 가지고 있는가 2. 스킨이 올드해보이지 않고 부드러운 느낌을 가지고 있는가 3. 모바일에서 UI가 깔끔하게 구현되어 있는가로 결국 최종 선택된 것이 베이스 캠프였다. 후보로 뽑은 나머지 스킨들도 정말 많은 분들이 이용하시는 좋은 스킨임은 틀림없다. 2. 이전 스킨에서 쓰던 설정들..

2022.01.20 게시됨

[ PHP ] P..PP.. PHP!! 포스팅 썸네일 이미지

TOOLS & Error

[ PHP ] P..PP.. PHP!!

흑마법 PHP 개발환경을 세팅하게 된 이유: 웹 해킹 공부하면서 드림핵에서 Guest Book v0.2를 풀어야 되는데 분명 이론적으로는 맞고 로컬에서 Dom Clobbering이 되는 것을 확인했다. 하지만 리모트 서버에서는 동작하지 않아 결국 php 환경을 세팅하고 테스트해보기로 한다. 이전에는 Bitnami를 썼지만 코드를 고칠때마다 restart를 해줘야 적용되어서 실시간으로 적용하고 확인할 수 있는 Live Server를 이용하기로 했다. 로컬에서 테스트할 때 리모트 서버에서 실행할 때 결과물 설치 순서 1. XAMPP 설치 2. VSCODE에서 Live server 설치 3. Chrome extension에서 Live Server 설치 4. vscode와 Chrome extension에서 몇 ..

2022.01.17 게시됨

TOOLS & Error

[ GNU Tools ] Objcopy

Objdump말고도 objcopy가 있다. 기존의 오브젝트 파일을 다른 오브젝트 파일로 복사해주는 얘라고 한다. 근데 이것을 쓰는 이유는 필요한 부분만 선택해서 복사해주기 때문에 파일 사이즈를 줄일 수가 있고 바이너리의 포맷도 바꿀 수 있다고 한다. ex) objcopy test test.new 그냥 평범한 복사이다. ex) objcopy -O binary test test.new -O binary 옵션을 준다면, 파일의 인스트럭션과 데이터만을 뽑는다고 한다. ELF 헤더도 붙지 않은 오로지 "인스트럭션 & data" 이것을 쓸 일은 쉘코드를 만들때와 부트로더(ELF헤더가 붙으면 안됨)를 만들때라고 한다. ex) objcopy -S test test.new 모든 심볼들과 재배치 정보들이 제거되어 바이너리..

2022.01.08 게시됨