전체 글30 고급언어와 저급언어 프로그래밍 언어란, 인간과 컴퓨터 사이에서 의사소통을 가능하게 하는 언어를 말한다. 컴퓨터는 기계어로 프로그램을 실행한다. 기계어는 0과 1로 이루어져 있다. 실제 사람들은 0과 1을 이해하기 힘들기 때문에 사람들에게 친화적인 언어들로 바꿔서 코딩한다. 기계와 가까운 언어를 저급 언어이고, 인간과 친화적인 언어가 고급 언어이다. 저급 언어 로우레벨 언어라고도 한다. 컴퓨터 프로세서와 직접적으로 통신하는 프로그래밍 언어이다. 사용자보다 컴퓨터 측면에서 개발한 언어이며 언어 수준이 낮아 2진수에 가까워 사람이 이해하기가 어렵다. 실행속도가 매우 빠르지만 배우기가 어렵고 유지보수가 힘들다. 그래서 최근에는 특수한 상황이 아니면 거의 사용되지 않는 언어이다. 저급 언어에는 기계어와 어샘블리어가 있다. 기계어 0.. 2023. 8. 1. 컴파일러와 인터프리터 여러 언어들을 찾아보기 시작하면 컴파일언어와 인터프리터 언어를 공부하게 된다. 그럼 컴파일언어와 인터프리터 언어가 무엇일까? 한번 알아보자!!! 컴파일 컴퓨터는 CPU가 바로 읽을 수 있는 0과 1로 구성된 기계어로 작동한다. CPU로 프로그래밍 언어가 작동되는 이상 기계어로 작동한다. 그래서 CPU단에서 실행되는 언어는 기계어로 번역되어야 한다! 그 번역하는 것이 컴파일러이다. 사실, 원래 컴파일은 한 코드를 다른 코드로 번역하는 것을 말한다. 하지만 일반적으로 어떤 언어파일을 기계어로 번역하는것을 컴파일 라고 한다. 컴파일 과정 빌드란, 소스파일이 실행파일이 생성되는 과정이다. 소스파일이 컴파일러를 통해서 목적파일이 되고, 링커를 통해 실행파일이 된다. 컴파일러는 소스파일을 목적파일로 변환한다. 고급.. 2023. 7. 31. HTML/CSS Injection HTML/CSS Injection 모두들 HTML과 CSS는 알 것 이다. 이번 취약점은 html과 css를 이용하는 취약점 이다. HTML/CSS Injection은 HTML과 CSS 를 웹 사이트에 injection 하는 취약점이다. 실제로 잘 알려지지 않는 기술이고 운영자 입장에서 위험한 취약점이라고 인식하지 않는게 현실이다. 하지만, 실제로는 많이 위험한 취약점이다. html/css injection 시나리오 일단 해커는 많이 사용하거나 잘 보이는 정상적인 버튼 혹은 로그인 버튼이나 로그아웃 등 중요한 버튼 위에 투명한 객체를 만든다. 해당 사이트 이용자는 정상적인 버튼을 누르려고 했지만, Click hijacking에 이용될 수 있다. click 을 뺏고 공격자의 피싱 사이트로 자연스럽게 유도 .. 2023. 7. 28. 정보빼가는 SQLi 와 SQLMAP SQL injection이란, 데이터베이스에 전송되는 SQL 쿼리문을 정상적이지 않은 악의적인 구문을 입력하여 공격자가 의도한 동작을 하도록 만드는 것이다. 공격이 비교적 쉬우나 공격에 의한 피해는 매우 크게 입힐 수 있다. 예시를 들어보자면, SELECT db FROM db WHERE id = '{userInput}' 이런 간단한 로그인 logic SQL 구문이 있다고 하면, userInput에 ' or 1 = 1-- 이런 악의적인 구문을 삽입하면, SELECT db FROM db WHERE id = ''or 1 = 1--' 이런식으로 WHERE문을 우회를 해 회원가입이나 계정 없이도 로그인을 할 수 있다. WHERE 우회 보통 SQL문은 SELECT db FROM db WHERE user = '{{u.. 2023. 7. 24. SSTI띠띠리리~~ 정적인 웹 사이트는 위에 짤처럼 정지해 있지만 멈춘게 아니다. 실제 많은 사이트들은 동적인 화면을 만드며 구현한다. SSTI취약점이 바로 그것을 이용한 것이다. SSTI가 뭔데? 템플릿 엔진을 사용할때 템플릿 엔진에 공격자의 공격 구문이 템플릿에 injection 되면서 생기는 취약점이다. 템플릿들은 각각 언어마다 아니면 개발자 취향마다 다 쓰이는 템플릿 엔진이 달라서 문법은 다를 확률이 높다. 템플릿별 문법을 찾아야한다. 하지만 거의 대부분 {{}} ; ${} 이정도 문법을 지원한다. 템플릿 코드 예시는 template = ''' 유저 아이디: {{user.uid}} 유저 레벨: {{user.level}} ''' % content 이정도 예시를 들 수 있다. 실제 공격하는 방식은 template = '.. 2023. 7. 21. 광주 소프트웨어 마이스터고GSM 회고록 보호되어 있는 글 입니다. 2023. 7. 21. 모의해킹? 그게 뭔데 씹덕아ㅡㅡ 아이디어 페스티벌 프로젝트, BSC Beaches Security Consulting은 첫 번째로, 모의해킹과 보안컨설팅을 할 것이다. 우리의 고양이 같은 해킹실력으로 모의해킹? 이라고 걱정했지만, 그래도 다 같이 배우는 입장으로써 조금 더 나은 보안을 위해서 도움을 줄 수 있고, 우리 학교의 많은 백엔드 친구들도 처음 배우고 있기 때문에 기능개발에 집중하고 보안에 집중을 못 할 것 같아서 모의해킹으로 직접 취약점을 찾아주고 컨설팅으로 secure coding에 도움을 주고 싶었다! 그리고 CTFd를 이용해 친구들이 즐길 수 있게 간단한 게임들을 만들 예정이다. 그럼 모의해킹은 어떤 과정을 거쳐서 진행되는거지? 모의해킹이란 모의해킹이란 시스템 장비, 네트워크 장비 등 실제 운영 중인 서비스를 직접 공격하.. 2023. 7. 19. command injection 쓰고 나서 보니 너무 정적인 글 이라서 지루하다 재미없어도 해킹은 재밌으니 재미있겠지? 실제 웹사이트를 운영하다 보면 직접 사용자의 입력값을 쉘 명령어에 보내야 할 때가 있다. 하지만 악의적인 사용자가 악의적인 입력값을 입력해 서버를 장악해 버리는 엄청난 취약점이다. 이번 포스팅은 command injection을 잘 모르면 이해하기 힘들 수 도 있다. 실제 일반적으로 사용되는 메타문자로는 # 명령어 치환 ls `echo -l` ls ${echo -l} # AND (앞 명령어가 정상적으로 작동하면 뒷 명령어가 실행된다.) pwd && ls -l # OR (앞 명령어에서 오류가 발생하면 뒷 명령어가 실행된다.) ls -qqq || ls -l # 구분자 pwd | ls pwd ; ls 등등이 사용된다. 하지.. 2023. 7. 18. 전 국민이 직접 시도해본 해킹공격, Brute Force Attack (dreamhack session) 너도 해봤을걸? 이 공격은 대한민국 전 국민이라면 한 번씩은 해본 공격이라고 말해도 무관하다. 한 번쯤은 친구 핸드폰, 노트북이나 컴퓨터를 열기 위해서 비밀번호를 아무거나 입력했던 기억이 있을 것이다. 이게 바로 brute force attack이다. 혹시 그때 0001, 0002 이런 게 아니라 1111, 2580,1234 이런 식으로 해봤으면 당신은 dictionary attack을 한 엄청난 해커이다!!! 그래서 이게 뭔데? 윗글을 읽고 이미 이해했을 거라 본다. 그래도 설명을 해보면, brute force attack은 무차별 대입 공격이다. dictionary 은 자주 사용하는 문자열부터 우선적으로 보내는 공격이다. 끝 웹 해킹 공격 중에서 가장 쉽고 간단한 공격인 것 같다. 물론 대응 수준이 .. 2023. 7. 17. 이전 1 2 3 4 다음