1. 웹 해킹
1) Python
- tqdm : for문 쓸 때 범위 바깥에 씌우면 진행도를 시각적으로 보여주는 라이브러리
- requests : 웹 요청을 보낼 때 사용하는 라이브러리
- dir(객체) : 객체가 가지고 있는 속성/메소드의 정보를 리스트로 볼 수 있음
2) 데이터베이스
- xml 내장함수인 extractvalue()는 에러 발생 시 출력되는 길이가 32Byte로 제한된다.
(https://learntoshare.tistory.com/23)
3) 자바스크립트
- URL 객체를 통해 URL을 직접 정규화할 수 있으며, protocol, hostname 등 URL의 각종 정보를 추출할 수 있다.
XSS 필터링 우회 공격 구문을 작성하기 위해 직접 URL을 정규화해보며 테스트하는 것이 가능하다.
- 자바스크립트의 언어적 특성을 활용하면 6개의 문자([, ], (, ), !, +)만으로 모든 동작을 수행할 수 있다.
( JSFxxx : https://namu.wiki/w/JSFuck )
4) HTTP
HTTPLeaks : 웹사이트에서 HTTP 요청이 유출될 수 있는 가능한 방법을 열거한 곳.
5) 툴 모음
- 드림핵 툴즈 : https://tools.dreamhack.games/
(1) My Request : 웹 서비스에 대한 요청을 출력
(2) Request Bin : 사용자 접속 기록을 남겨 이후에 확인할 수 있다.
(3) Cyber Chef : GUI로 여러 종류의 인디코딩과 암복호화를 지원한다.
- URL 인코딩/디코딩 : https://www.urlencoder.org/ko/
- 온라인 컴파일러 사이트
(2) https://www.mycompiler.io/ko
- SQL 쿼리를 테스트할 수 있는 사이트
(2) https://sqltest.net/ : 홈페이지에 레퍼런스 사이트로 연결되는 링크도 있다.
(3) https://www.sqlines.com/online : SQL끼리 변환해주는 사이트이다.
- MongoDB 매뉴얼 : https://www.mongodb.com/ko-kr/docs/manual/
- Redis 매뉴얼 : https://redis.io/docs/latest/develop/reference/
- 셀레늄 (Selenium) : 웹 애플리케이션 테스팅에 사용되는 파이썬 모듈로, API를 통해 웹 드라이버 (크롬, 사파리 등)를 사용할 수 있다. 셀레늄은 요청과 응답만을 처리하는 라이브러리와 다르며, 응답에 포함된 Javascript, CSS와 같은 웹 리소스를 웹 드라이버를 통해 해석하고 실행하기 때문에 웹 브라우저를 통해 페이지를 방문하는 것과 같은 역할을 한다.
- couchDB 매뉴얼 : https://docs.couchdb.org/en/latest/api/index.html
- MAC 제조사 코드(앞 3자리)를 넣으면 어디 칩인지 알아낼 수 있다 : https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries
※ 깨알 지식
- 파이썬 IDLE에서 프로그램 실행 시 매개변수 넣는 법 : Run - Run... Customized (단축키 Shift + F5)
- TTL 값으로 해당 서버의 OS를 알아낼 수 있다. 이 때문에, 보안에 투자를 많이 하는 기업의 경우에는 TTL 값을 바꿔 놓아 서버가 사용하는 OS를 유추하지 못하게 한다. : https://namu.wiki/w/TTL
- HTML 엔티티(Entity) : HTML에서 예약어나 심볼, 특수기호를 나타내고 싶을 때 쓸 수 있는 엔티티. 이를 이용하여 문자열 검사를 우회하는 데 이용할 수 있다.
※ 참조 사이트
- 구글은 CSP를 올바르게 정의하였는지 검사하기 위해 CSP Evaluator를 제공한다.
2. 시스템 해킹
- 리눅스 bash 셸 명령어 : https://mug896.github.io/bash-shell/index.html
- 리눅스 매뉴얼/시스템 콜
2) https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/
- 디버거
1) gef : https://github.com/hugsy/gef
2) peda : https://github.com/longld/peda
3) pwngdb : https://github.com/scwuaptx/Pwngdb
4) pwndbg : https://github.com/pwndbg/pwndbg
- 아키텍처별로 자주 사용되는 셸코드 모음 : https://shell-storm.org/shellcode/index.html
- pwntools : 시스템 해커들이 익스플로잇에 쓰이는 함수들을 집대성하여 작성한 python 모듈.
그런데 이 모듈은 보통 linux에서 설치해서 쓰는 것 같고, 맥북에 설치하려면 방법이 없진 않은데 시행착오를 많이 거쳐야 하는 것 같다.
(https://github.com/Gallopsled/pwntools), (https://docs.pwntools.com/en/latest/)
- \x : 문자로 16진수를 나타낼 때의 표현
▶ 드림핵 툴즈 변환 : From Hex, Delimeter : \x
- 아스키 코드 : https://namu.wiki/w/%EC%95%84%EC%8A%A4%ED%82%A4%20%EC%BD%94%EB%93%9C
▶ URL에서 사용하는 URL escape code의 경우, % 뒤에 아스키 코드의 hex 값을 붙여 준 것이다.
(https://namu.wiki/w/URL%20escape%20code)
- one gadget : https://github.com/david942j/one_gadget
▶ 원 가젯(one-gadget) 또는 magic_gadget 은 실행하면 셸이 획득되는 코드 뭉치를 말한다. 기존에는 셸을 획득하기 위해 여러 개의 가젯을 조합해서 ROP Chain을 구성하거나 RTL 공격을 수행했지만, 원 가젯은 단일 가젯만으로도 셸을 실행할 수 있는 매우 강력한 가젯이다.
* 용어
- 허니팟 : 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템을 의미한다. 예를 들어, 네트워크 상에 특정 컴퓨터를 연결해 두고 해당 컴퓨터에 중요한 정보가 있는 것처럼 꾸며두면, 공격자가 해당 컴퓨터를 크래킹하기 위해 시도하는 것을 탐지할 수 있다.
* 이외 링크
- 정규식
(1) Regexr
(2) regex101 : Refexer는 자바스크립트와 PHP 밖에 지원을 안 하지만, 이 사이트는 보다 다양한 언어를 지원한다.
(3) Regexplant
(4) Regexper : 정규표현식을 그림(도식)으로 표현한다.
(5) Rubular : Ruby 기반 정규식
(6) 정규표현식 샘플 모음 사이트 : https://regexlib.com/
- exploit 참고 사이트 : https://jennysgap.tistory.com/entry/exploit-%EC%B0%B8%EA%B3%A0-%EC%82%AC%EC%9D%B4%ED%8A%B8
- 취약점/약점 모음
Exploit DB : 프로그램, 운영체제, 데이터베이스, 전송 및 보안장비/운영체제에 대한 취약점 분석 코드 제공
kali linux에 exploit-db에서 제공하는 취약점 코드가 내장되어 있다 : https://easy7.tistory.com/371
https://www.cvedetails.com/vulnerabilities-by-types.php
- 버그 바운티 사이트 : 대부분의 규모 있는 기업들은 버그바운티 프로그램을 운영하고 있다.
이에 대한 자세한 내용을 보려면 기업 이름 + 버그바운티를 검색하면 된다.
- 보안 업체의 제품 소개 스펙 문서만 보아도 많은 도움이 된다.
- Threat Map
'프로그래밍 > 해킹' 카테고리의 다른 글
Exercise: SQL Injection Bypass WAF (0) | 2024.07.02 |
---|---|
Bypass WAF (0) | 2024.07.02 |
DBMS Fingerprinting (0) | 2024.07.01 |
[WHA-S] Exercise: Blind SQL Injection Advanced (0) | 2024.06.30 |
맥북 시스템 해킹(Pwnable, Reversing) 환경 구성 (0) | 2024.06.26 |