본문 바로가기

분류 전체보기

(214)
값 비교와 객체 비교, 값을 boolean 단순 값을 비교 할 때는 ==, != 객체를 비교 할 때는 is, is not a = 1 b = 1.0 print(a == b) print(a is b) ##출력 True False 값을 bool로 만들기 a = 1 print(type(a)) a = bool(a) print(type(a)) print(a) ##출력 True
print, sep, end 활용, 문자열 포맷 print로 여러값을 한번에 출력하려면 x = 10 y = 20 z = 30 print(x, y, z) ##출력 10 20 30 이런식으로 사용 10 20 30 사이에 '/'를 넣고 싶으면 sep를 사용 x = 10 y = 20 z = 30 print(x, y, z, sep='/') ##출력 10/20/30 print를 기본적으로 실행 후 줄바꿈을 하는데 줄바꿈을 안하고 싶으면 end를 사용 ## 1 for i in range(10): print(i) ##출력 0 1 2 3 4 5 6 7 8 9 ## 2 for i in range(10): print(i, end=' ') ##출력 0 1 2 3 4 5 6 7 8 9 print 문자열 포맷 x = 10 y = 20 print("x + y =", x + y)..
input 입력, 여러개 값 입력 ##입력 x = input('입력: ') print(type(x)) print(x) ##출력 입력: 6 6 기본적으로 문자형임 정수나 실수로 입력을 받으려면 input()을 int나 float으로 감싸주어야 함 ##입력 x = int(input('입력: ')) print(type(x)) print(x) ##출력 입력: 6 6 여러개의 값 입력받기 split을 이용해서 여러개의 값을 입력받음 ## 1 x = input('입력: ').split() print(type(x)) print(x) ##출력 입력: 5 6 ['5', '6'] ## 2 x, y = input('입력: ').split() print(type(x)) print(x) print(type(y)) print(y) ##출력 입력: 5 6 5 6 ..
hashpump 해시 길이 확장 공격(length length extension attack) 툴 https://github.com/bwall/HashPump bwall/HashPump A tool to exploit the hash length extension attack in various hashing algorithms - bwall/HashPump github.com ex) BRUCON CTF 2016 Covering "Breaking the crypto" user의 value fDY4fAA= -> base64로 디코딩하면 "|68|" mac(Message Authentication Code)의 value는 해시값으로 32자(16byte)인걸 봐서 md5인듯 admin은 |1| 일거 같으니 |1|을 base6..
CSP(Content-Security-Policy)와 CSP bypass CSP 콘텐츠 보안 정책(Content Security Policy, CSP)은 신뢰된 웹 페이지 콘텍스트에서 악의적인 콘텐츠를 실행하게 하는 사이트 간 스크립팅(XSS), 클릭재킹, 그리고 기타 코드 인젝션 공격을 예방하기 위해 도입된 컴퓨터 보안 표준 출처: https://ko.wikipedia.org/wiki/%EC%BD%98%ED%85%90%EC%B8%A0_%EB%B3%B4%EC%95%88_%EC%A0%95%EC%B1%85 콘텐츠 보안 정책 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 콘텐츠 보안 정책(Content Security Policy, CSP)은 신뢰된 웹 페이지 콘텍스트에서 악의적인 콘텐츠를 실행하게 하는 사이트 간 스크립팅(XSS), 클릭재킹, 그리고 기타 ..
SSRF(Server Side Request Forgery)공격 SSRF(Server Side Request Forgery)공격 공격자가 서버 측 응용 프로그램이 공격자가 선택한 임의의 도메인에 HTTP 요청을 할 수 있도록하는 웹 보안 취약점 웹 어플리케이션에서 요청을 보내기 때문에 웹 어플리케이션이 작동하고 있는 서버 내부의 포트, 서버와 연결된 내부망에 요청을 보낼 수 있고 Server-side에서 변조된 요청 / 의도하지 않은 서버로 요청가능 CSRF와의 차이점 CSRF는 변조된 요청이 웹 클라이언트(브라우저)가 보내며, SSRF는 웹 어플리케이션에서 보내지게 됨 공격 시나리오 서버 자체에 대한 SSRF 공격에서 공격자는 루프백 네트워크 인터페이스를 통해 응용 프로그램을 호스팅하는 서버에 HTTP 요청을 다시 보내도록 응용 프로그램을 유도. 일반적으로 127...
XSS와 CSRF의 차이 XSS(Cross-Site-Script): - 공격대상: Client - 공격자는 대상 사용자의 브라우저 내에서 임의의 JavaScript를 실행 CSRF(Cross-Site-Request-Forgery) - 공격대상: Client(Client의 권한으로 Server에 요청) - 공격자는 피해자가 의도하지 않은 작업을 수행하도록 유도 XSS를 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, CSRF는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것 XSS는 일반적으로 임의의 스크립트 코드를 실행할 수있는 반면 CSRF는 특정 작업 (예 : 비밀번호 변경)으로 제한되므로 CSRF보다 강력 성공적인 XSS 공격은 모든 안티 CSRF을 효과적으로 우회 참고 사이트:http..
Basic_BOF#2 gdb로 본 함수 정보를 봐서 v5가 함수포인터로 선언되고 char형 s에 fgets로 133바이트만큼 입력을 받고 v5를 실행 입력한 값을 bof시켜 v5를 덮어서 원래의 v5가 아닌 shell함수를 실행 시켜야 하는 것 같음 fgets이후에 함수 호출하는 부분으로 v5()를 호출하는 부분인거 같음 이제 입력값으로부터 v5값의 offset을 구함 main+59에 bp를 걸고 pattern 찾기' offset = 128 잘 됨