목록hacking study (69)
wonder

☞ 암호화 방식 대칭키 암호화 방식 = 암복호화에 사용하는 키가 동일한 방식 비대칭키(공개키) 암호화 방식 = 암복호화에 사용하는 키가 서로 다른 방식. (공개키로 암호화, 개인키로 복호화) ☞ RSA 암호화란 RSA는 사실상의 표준 암호화로 전자서명 인증용도로도 사용합니다. 공개키(public key) + 공개해서는 안되는 개인키(private key) 으로 구성 공개키는 메세지를 암호화할 때, 개인키는 암호화된 메세지를 복호화할 때 사용합니다. A가 B에게 정보를 보내는 과정 ☞ TLS 통신 TLS의 암호화 방식= 대칭키 + 비대칭키 방식 혼용 TLS 통신은 SSL의 암호화 뿐만 아니라 다른 이점이 있습니다. 1. 기밀성(암호화) 주고받는 데이터 정보를 암호화합니다. 안전하게 암호화된 패킷이라 복호화..

☞ 서버 인증서 무결성 검증 취약점 서버 인증서는 SSL일 때 인증서를 유료로 발급받아서 좌물쇠를 띄어 신뢰된 사이트라는 것을 증명함을 말합니다. 따라서 사용자는 인증이 안된 사이트를 알 수 있도록 판단하여 스니핑을 방지하거나 피싱을 방지할 수 있습니다. ☞ 필요없는 메소드 허용 취약점 OPTIONS 메소드를 사용시 허용하여 사용가능한 메소드가 나오는데 기본적으로 GET, POST, HEAD, OPTIONS 이렇게만 사용이 가능하도록 설정되어 있습니다. HEAD는 내용은 제외하고 헤더정보만 전송하는 것으로 주로 서버작동이 유효한지 확인하기 위해 사용합니다. 다른 메소드들은 보통 PUT, DELETE처럼 메소드만 바꾸는 게 아니라 하나 오타를 내줘야 405 method not allowd 클라측에서 메소드..

참고 만약 파일 이름을 받아온다고 했을 때 ../../name.txt 로 한다면 /, \, 등이 들어간다면 앞의 입력값까지 아예 무시해버립니다. 그래서 필터링을 하지 않더라도 기본적으로 path traversal을 막고 있습니다. 이걸 우회 하거나 파일 업로드 확장자 필터링을 우회할 방법이 있을 것 같긴한데 고민이 필요해보입니다. ☞ into outfile로 인한 파일 업로드 SELECT * FROM `members` where idx='asdfa' union select 1,'',3,4,5 limit 0,1 into outfile 'shell3.php'; select문이 있고, union select 가 된다는 조건하에, 파일 쓰기 권한이 있다는 조건하에 into outfile 문을 이용해서 웹쉘을 업..

☞ 다양한 SQL 쿼리문 구현 방법 이런식으로도 connect 등 SQL쿼리문을 구현 가능합니다. 현재 non-prepared 이기 때문에 wonder12' union select 1,2,3,4,5# wonder12' union select 1,2,3,4,5 limit 1,1# 해당 SQL문을 인젝션했을 때 결과가 뜨는 것을 볼 수 있습니다. SELECT 대문자로 시작해줘야 실제 쿼리가 어떻게 진행되는지 알 수 있어서 보기에 편합니다. ☞ prepared statement 구현 SELECT 문 여기서의 핵심은 concat으로 % ? % 를 붙여 줘야 검색창과 같이 결과가 나온다는 점입니다. 또한 execute()는 필수고 Prepared statement 구문을 get_result()를 추가해줘야 결과가..

☞ SHA256 해시값 사전 대입 공격, 레인보우 테이블로 평문 알아내기 sha256 해시 값이 노출되어서 얻었다면 john을 통해서 사전 대입 공격이 가능합니다. 물론 솔트 값이 없거나 길지 않고, 예측가능한(길지않게 설정된) 비밀번호여야 찾을 수 있을 것입니다. echo -n 'test' | sha256sum > password john --wordlist=./word.txt --format=raw-sha256 hash.txt -n 으로 줄바꿈을 해줘야 오류가 뜨지 않습니다. 다음과 같은 오류가 뜰 때는 기존 로그를 삭제해주거나, --show 로 결과를 확인합니다. john --wordlist=./word.txt --format=raw-sha256 hash.txt --show 또는 rm -rf .jo..

☞ 인젝션 방지 치환 함수 mysqli_real_escape_string ",',\,\n(줄바꿈),\r 기호에 대해 이스케이프 문자인 \를 붙여서 SQLi 공격 구문, 스크립트 삽입으로의 역할을 하지 못하게 합니다. >>>> 따라서 및 and, select, union 등 따옴표를 사용하지 않는 SQL 공격 구문은 사용이 가능합니다. 해당 함수가 모든 기호를 치환하거나 escape 해주는 것은 아니기 때문에 함수가 어떤 기호를 막고 있는지, SQL문을 예측 및 확인해보고 따옴표 없이 SQLi 가능한 부분을 찾아야합니다. addslashes($data) 마찬가지로 ', " 기호에 대해 \ 이스케이프 문자를 붙입니다. 입력값이 DB에 저장될 경우에는 \가 붙어서 저장되기 때문에 불러올 때는 stripslas..