●IDS란? Intrusion detection system의 약자로 시스템에 대한 원치 않는 조작을 탐지하여 준다. 즉 탐지가 핵심 기능이다. 이미 발견되고 정립된 공격 패턴을 미리 입력하여 해당 패턴을 탐지하면 알려주도록 설정되어있다. HIDS(호스트 기반)와 NIDS(네트워크 기반)로 구분 가능하며, 설치의 위치에 따라 구분된다. 스노트가 대표적이다. ●IPS란? Intrusion prevention system의 약자로 시스템에 대한 원치 않는 조작을 탐지하고 차단해준다. 즉 IDS에서 발전해 방화벽의 차단 기능을 부과한 시스템이라고 생각하면 된다. 따라서 IPS와 IDS의 차이점은 차단기능의 유/무이다.
이는 인자가 ""에 쌓여 출력되고 문자 제한이 걸린 command injection 문제이다. 따라서 문자제한 회피를 위해 위와 같이 burp suite를 이용하였다. 1.1.1.1 ls 출력 -> 문자제한으로 막힘 proxy로 문자제한 우회 1.1.1.1을 보내고 그 후 proxy하여 ; ls를 출력해봄 -> “” 가 붙어 해당 명령어 막힘 "{host}"로 되어있는것 발견 “” 우회하기 "; ls ./ " -> 막힘 여기서 포인트는 둘다 주소인것 따라서 따옴표로 묶어도 오류 안남 "; ls “./” 하면 먹힘! -> 여기 아래에 flag.py 발견함 그렇다면 "; cat "./flag.py"하면 답 발견가능함!
해당문제는 sql injection 유형이다. @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'GET': return render_template('login.html') else: userid = request.form.get('userid') userpassword = request.form.get('userpassword') res = query_db(f'select * from users where userid="{userid}" and userpassword="{userpassword}"') if res: userid = res[0] if userid == 'admin': return f'hello ..
이 문제에서 중요한 것은 3가지로 1. 각 페이지의 유형과 2. FLAG값이 어디에 들어있는지 3. 127.0.0.1의 의미를 아는 것이다. 페이지는 총 3종류로 vuln(xss) page, memo, flag가 있는데 vuln은 입력값을 그대로 return한다. memo는 memo변수의 값을 그대로 출력하며 flag는 127.0.0.1:8000 포트에 post로 쿼리문을 보낸다. 따라서 vuln페이지는 xss 공격이 가능하다. 그리고 127.0.0.1은 로컬호스트이다. 그러므로 패킷을 외부까지 보내지 않는다. 또한 코드를 살펴보면 /**코드 전체에서 일부만 조각해옴**/ try: FLAG = open("./flag.txt", "r").read() if not check_xss(param, {"name"..
● miter att&ck 프레임 워크 - 공격 전략과 기법을 종류별로 묶어놓은 표 ● 파일리스 공격 특징 -프로세스 인젝션 사용 -LOL bins 사용 -스크립팅 -파일리스 퍼시스턴스 ● 바이너리, 텍스트 파일 차이BASE 64 인코딩 - 바이너리 데이터를 아스키코드 일부와 일대일로 매칭해 문자열로 단순 치환하는 인코딩 방 ● 바이너리, 텍스트 파일 차이바이너리, 텍스트 파일 차이 -바이너리파일 : 사용자 또는 프로그램이 사용하던 정보나 숫자 값을 특별한 가공 없이 그대로 파일에 저장하는 것 (예) 그림파일이나 음악파일 -텍스트 파일 : 문자를 기반으로 하여 가공조건이 하나 추가된 파일 형식 ● 스피싱 이메일 분석 -의심스러운 이메일 식별 기준 1) 메일함에서 디스플레이 되는이름과 meassege he..