본문 바로가기
300x250

분류255

[Python] - 문자열을 더 편리하게 관리하는 함수들 split,join,replace,count,find 지난번엔 문자열 인덱싱 슬라이싱을 배워봤다 그리고 문자열을 더 편하게 관리할 수 있는 여러 내장함수들에 대해 알아보자 ​ 문자열 함수 - count a = "I love python" print(a.count('o')) >>> 2 count 함수는 문자열 내에 속하는 문자의 개수를 찾아서 그 개수의 값을 int형으로 return 한다 ​ 문자열 함수 - find a = "I love python" print(a.find("l")) >>> 2 find함수는 문자열내에서 입력한 문자의 위치를 찾아 인덱스값으로 return 한다 ​ ​ 문자열 함수 - index a="slowly and faster" print(a.index('x')) >>> ValueError: substring not found print.. 2020. 9. 8.
[Python] - 문자열 그리고 입출력 기초 문자열 그리고 입출력 기초에 대해 알아보자 C언어는 변수를 선언할 때 자료형을 적어줘야 한다 하지만 파이썬은 따로 자료형을 적어 선언을 해줘야 할 필요가 없다 그저 변수를 적고 값을 넣기만 하면 된다 물론 나중에 특정 자료형이 필요하다면 그때는 형 선언을 해줘야 한다 a=10 # 정수형 b=3.141592 # 실수형 c="Korea" # 문자형 아래와 같은 형식으로 구별해주기만 하면 그에 맞는 자료형을 생성한것과 다름이 없다 그리고 정수형 모든 자료형은 +,* 더하기와 곱하기 연산이 가능하다 ​ 문자열 연산 c="South" d="Korea" print(c+d) >>> "SouthKorea" print(c*2) >>> "SouthSouth" 위와 같이 문자열을 통한 더하기와 곱하기연산 후 출력 역시도 가.. 2020. 9. 8.
[Python] - Class에 대해 그리고 상속과 메서드 오버라이딩 class와 상속 그리고 메서드 오버라이딩에 대해 배워보자 class는 파이썬의 대부분의 기능을 제작해서 사용되고 있다 정수형 int도 type을 살펴보면 class로 선언되어 있다 그렇게 만들어진 class를 상속받거나 오버라이딩 하면 더욱 간결한 코딩이 가능하다 ​ ​ class의 선언과 구조 class Human: def __init__(self,age,name): self._age=age self._name=name def __repr__(self): return "제 나이는 : {}살이고 이름은 : {}입니다.".format(self._age, self._name) cheolsu=Human(22,"kimcheolsu") print(cheolsu) >>> 제 나이는 : 22살이고 이름은 : kim.. 2020. 9. 8.
[Flask] Flask로 웹 페이지 제작하기 - 1 기초적인 설정과 사용법, Visual Studio Code와 Flask 설치법 // 개인프로젝트 Flask 란? Python으로 제작된 웹 프레임워크 Flask는 웹 개발에 특화된 프레임워크 이며 가볍고 다양한 엔진을 사용한 개발이 가능하다 주로 웹 개발에서는 Django(Python의 또다른 웹 프레임워크)를 많이들 사용한다 보안적인 측면이나 유지보수가 편리하고 신속한 개발이 장점이다 특히 무료 오픈 소스임이 가장 강력하다고 할 수 있는데 그렇다고 해서 Flask가 Django 보다 더 성능이 떨어진다거나 하지 않는다 능력만 된다면 Flask로만 웹 단일개발도 가능할 뿐더러 Django와 같이 사용해 개발도 가능하다. Flask는 Python의 웹 프레임워크 이기 때문에 코딩을 할때 Python의 문법을 따른다 그럼에도 살짝 낯선 문법들은 존재할것이다 먼저 Flask를 통한 개발을 위해서는 아래와.. 2020. 9. 2.
[Clickjacking] Click Jacking 실습 예제 - 코드를 삽입하여 Click Jacking 유도하기 (PortSwigger, 웹 해킹) PortSwigger 사이트에 있는 Click Jacking 예제 1번을 풀어보겠다 문제를 풀어보기 전에 Click Jacking 이라는 기법에 대해 간단히 알아보고 가자 Click Jacking Click Jacking 역시 웹 해킹 기법중 하나로 웹 사용자가 인지하지 못한 화면이나 버튼을 클릭하게 되면 의도치 않은 행위로 이어지도록 하는 것이 Click Jacking 이다 말 그대로 Click으로 실행되는 기법이기에 주로 시각적으로 속이는 데에서 이루어진다 자 사이트를 들어와보면 Login과 Exploit Server가 있음을 알 수 있다 그리고 우리는 문제풀이 전 carlos/montoya 의 계정 정보를 받았다 그럼 로그인을 해서 확인해보자 Login을 하면 Account actions 라는 항목.. 2020. 8. 26.
[XSS] XSS(Cross Site Scripting)공격 실습 Reflected XSS 를 사용하여 태그 삽입 (PortSwigger) XSS(Cross Site Scripts)의 기본적인 내용에 대해서는 DreamHack 의 예제1번에서 설명해놓았다 아래 링크를 타고 봐보도록 하자 hobbylists.tistory.com/entry/XSSCross-Site-Scripting%EA%B3%B5%EA%B2%A9-%EC%8B%A4%EC%8A%B5-Dreamhack-%EC%8B%A4%EC%8A%B5%EC%98%88%EC%A0%9C 위에서 접속할 사이트는 Reflected XSS를 통해 공격해야 한다고 적혀있다 그리고 마지막 줄에 "alert" 기능을 사용해야 한다고 적혀있는데 alert는 Javascript 언어의 함수로 Message를 발생시킨다 alert() ()내의 Message를 발생시키는 Javascript 의 기능 먼저 사이트를 들어.. 2020. 8. 26.
[CSRF] - 무방비 상태의 사이트 공격 // CSRF attack, PortSwigger 예제 PortSwigger의 Academy - CSRF 문제입니다. https://portswigger.net/ Web Application Security, Testing, & Scanning - PortSwigger PortSwigger offers tools for web application security, testing, & scanning. Choose from a range of security tools, & identify the very latest vulnerabilities. portswigger.net CSRF Attack 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 사용자가 신뢰하는 사이트에서 발생하.. 2020. 8. 23.
[Html] - Html의 기초구조 및 태그 설명 (Head,Body) 글을 작성하는 현재 2020년 기준으로 다양한 웹 언어들이 존재하며 그 중 웹 언어를 프론트엔드(화면상으로 보이는) 백엔드(서버 및 내부 기능) 로 구분해서 사용하고 있다 과거 html과 스크립트 언어 일부 포함으로 쉽게 웹 개발을 진행했지만 서비스가 계속 제공될수록 품질의 상향평준화가 되어 현재 프론트엔드 언어로는 JavaScript,CSS,HTML 이 존재하며 웹 공부를 하기 위해 html은 필수로 익혀놓는게 좋다 물론 Flask, Node.js 등 더 좋은 웹 개발 프레임워크들이 존재하니 html에 목을 맬 필요는 없다 HTML의 기본 구조 Hello! Html의 기본 구조이다 Visual Studio Code를 통해 작성했다 태그를 선언 하여 내부에 를 선언하여 내용 코드를 작성한다 태그는 제목태.. 2020. 8. 23.
[SQL - Injection] - My SQL DB 버전 정보 조회하기 // SQL union injection , PortSwigger 예제 PortSwigger의 Sql Injection문제 6번이다 개인적으로 여기서 막혀서 풀이까지 시간이 좀 오래 걸렸었다. Burp Suite를 사용하지 않으면 url로는 풀이가 안되는데 이유나 원리는 아직도 의문이다.. 문제의 내용은 이러하다 DB는 MySql이고 버전을 확인해야한다 https://hobbylists.tistory.com/entry/%EC%9B%B9-%ED%95%B4%ED%82%B9-Sql-Injection-%EB%B2%84%EC%A0%84%ED%99%95%EC%9D%B8-%EB%AA%85%EB%A0%B9%EC%96%B410v DB별 버전 문자열은 위에서 확인할수있다. select @@version 아무튼 우리는 위 MySql 버전정보 확인 코드를 Union삽입 코드와 적절히 섞어 사용하.. 2020. 8. 19.
[Python] - Class 심화 Python 객체 지향 프로그래밍(OOP) // 파이썬 중급 프로그래밍의 방식 중에 객체 지향 프로그래밍(OOP)가 존재한다 객체 지향 프로그래밍이란 무엇인가 객체 지향 프로그래밍 - 사람이 생각하는 방식에 가까운 프로그래밍 과거 객체지향의 개념이 존재하기전의 프로그래밍 방식은 컴퓨터에게 명령을 넣어주는데 많은 시간이 허비되었지만 객체 지향의 단계로 넘어오고 나서는 사물 혹은 사람의 특성 그대로를 차용해 프로그램에 옮기는 방식을 선택했기에 우리는 우리와 비슷한 사고를 하도록 컴퓨터를 사용할수 있게 된것이다 물론 세상에는 수많은 프로그래밍 언어가 존재하고 모든 언어가 객체지향적 특성을 지니지는 않는다 대표적인 객체지향 프로그래밍 언어는 C++,JAVA,ASP,Python.. 등등 존재하는데 시대의 흐름을 탈수밖에 없는 코딩의 특성상 요즘 사용되는 언어는 대부분 객체.. 2020. 8. 12.
300x250