목록웹개발 (12)
무기는 끈기

write up 해볼 CTF Challenge는 'Basic Script Prac' 이다. 가장 우측에 있지만, 클라이언트 스크립트를 활용하는 문제들 중 기본에 관한 문제이다. 문제를 클릭해보자. 문제에 대한 정보와 문제 페이지 링크, 그리고 관리자 방문 Bot Link가 나온다. 예상되는 풀이 루트: 1. 가장 하단의 문제 페이지에 접속 2. Mypage에서 XSS 취약점이 일어나는 곳 연구 3. XSS 취약점이 일어나는 곳에 삽입할 스크립트 제작 4. 스크립트가 실행될 링크를 관리자에게 전달 5. 내 공격자 서버로 데이터가 넘어오면 flag 탈취 혹시나 놓치는 것 없도록, 하나하나 차근차근 살펴보도록 한다. 1. 문제 페이지에 접속 문제 페이지가 나온다. Mypage에 취약점이 있다고 했으니, 로그인..

지난 글에선 XSS 공격 기법을 사용할 경우 막아놓은 것들을 어떤 방법을 사용해서 우회할 수 있는지 알아보았다. 글 보러가기 -> https://yubi323.tistory.com/78 [Web Hacking / 웹 해킹] XSS Bypass Trick 우회 트릭 기법 알아보기 (script 길이 제한, img 태그 활용, event ha XSS 공격기법을 사용하다보면 다양하게 막아놓은 것을 찾을 수 있다. 그럼에도 불구하고 이런저런 우회 기법을 사용하여 공격할 수 있기에, 해당 공격들에 방어하기 위해선 어떤 우회 방법이 있 yubi323.tistory.com 이번 글에선 XSS 공격기법에 대한 대응방안을 알아보려고 한다. XSS 공격기법에 대한 가장 분명한 대응방안은 바로 HTML Entity 치환 이..

XSS 공격기법을 사용하다보면 다양하게 막아놓은 것을 찾을 수 있다. 그럼에도 불구하고 이런저런 우회 기법을 사용하여 공격할 수 있기에, 해당 공격들에 방어하기 위해선 어떤 우회 방법이 있고 어떻게 우회할 수 있는지를 알아야 한다. 이번 글에선 XSS 우회 트릭을 몇가지 살펴보려고 한다. - script Tag 길이 제한된 경우 - script 단어 필터링 된 경우 - img Tag 활용(Event Handler 활용) - XSS in href - script Tag 내에서 XSS 발생하는 경우 - svg 등 다양한 태그 활용 - XSS in input 하나하나 살펴보도록 하자. - script Tag 길이 제한된 경우 script Tag 안에 들어가는 글자수를 제한 해놓은 경우는 아래처럼 우회할 수 있..

SQL injection에는 union - , error based -, blind - , time - 등이 있다. 곧이어 찾아온 SQL injection 난항 error based, blind는 너무 재밌고 노가다가 들어갔어도 즐거웠지만, 취약점을 찾기 위한 가장 기본이자 첫 단계인 SQLi 포인트 찾는 감이 오지 않아 고민이 많았다. 더불어 union 수업 때는 몸살에 노트북 방전으로 수업까지 좀 놓쳐서 혼자 더듬더듬 공부해도 완전하게 이해가 되지 않는 부분이 많았다. 오프라인으로 보충 수업을 들을 수 있는 기회가 생겨 바로 신청하고 듣고 왔다. 넘넘 좋았고,, 고민이 많았던 SQLi 포인트를 찾는데에 자신감을 갖게 됐고, ctf 문제를 처음부터 끝까지 오랜시간 헤매더라도 스스로 힘으로 풀 수 있게 ..

이번 시간엔 로그인 기능과 관련된 학습을 했다. 로그인에는 다양한 로직이 있다. 만들어낸다면 무궁무진한 로직이 존재하게 될 수도 있을 것이다. 그 중 가장 대표적인 로직 2개, 그리고 그 2개를 HASH 처리한 로직 총 4개를 알아보겠다. 1. 식별/인증 동시 해당 로직은 로그인할 때 아이디와 비밀번호를 SELECT 한 줄에 몽땅 때려넣어서 동시에 처리하는 방식이다. // sudo $sql = "select * from member where id='$user_id' and pass='$user_pass'" $ret = $sql.execute() if($ret){ // 로그인 성공 }else{ // 로그인 실패 } 2. 식별/인증 분리 해당 로직은 식별 과정과 인증 과정을 분리해서 처리하는 방식이다. /..

아무리 해도 404 Not Found 에러가 떠서 미칠 것 같았다가 결국 함께 수업 듣는 분께 여쭤봤다. 가상머신과 도커를 껐다가 다시 켜서 sudo docker ps -a 를 입력해서 현재 실행되거나 종료되어 있는 도커들을 전부 찾아봤다. 찾아봤더니 3개의 도커가 중복으로 죽어있는 상태였다. 봐도 모르는 상황이었어서 캡쳐를 보신 분께서 도와주셨다ㅠㅠ 해당 종료된 도커 3개를 전부 제거해야 한다고 하셨다. student@segfault:~$ sudo docker rm -f 45 45 student@segfault:~$ sudo docker rm -f cd cd student@segfault:~$ sudo docker rm -f 0a 0a 이렇게 하나하나 도커의 앞글자 2개를 입력해줘서 제거해줬다. 제대로..

sudo docker update --restart always studentWeb 이 코드를 사용해서 터미누스를 열때마다 자동으로 재시작되도록 설정하였다. 나온 결과에 대한 자세한 설명은 하단에 붙여넣겠다. 이 로그는 Docker를 사용하여 LAMP 스택을 포함하는 컨테이너를 시작하는 과정을 나타냅니다. 여기서 LAMP는 Linux, Apache, MySQL, PHP를 의미합니다. 구체적으로 어떤 일이 발생하고 있는지 설명드리겠습니다. APACHE_RUN_GROUP 환경 변수를 편집 중입니다.phpMyAdmin 설정을 수정 중입니다.MySQL 디렉토리 설정 중입니다.Apache/PHP가 앱 폴더에 쓸 수 있도록 설정 중입니다.Apache/PHP가 MySQL 폴더에 쓸 수 있도록 설정 중입니다.MySQL..

가상머신에서 우분투 리눅스를 활용하여 APM 환경 세팅 후 로그인 페이지 등 웹 개발하는 것은 이제 할 수 있게 되었다. 그러나,, 이번부턴 terminus 라는 툴을 활용하여 리눅스 ssh 연결을 통해 내 호스트 환경에서도 웹 개발하게 되었다. 기존대로 해도 되지만, 최대한 놓치지 않고 동일한 환경에서 배우고자 새로운 방식대로 따라가고자 했다. 문제는 이제부터 였다. 노트북이 m1 맥북 에어였던 탓에 호환이 안되는 툴이 너무 많아 급하게 씽크패드 p14s 인텔 버전을 구입했다. 너무 좋다,, 그래서 가상머신도 terminus도 모두 빠르게 정상적으로 세팅을 완료했다. 이제 웹 개발을 하기 위해 index.html 을 vi 로 제작했는데 대체 어떤 폴더에 넣어야 하는지를 모르겠는 거였다. ls 명령어를 ..