반응형

모의해킹 23

[Web Hacking] XML 외부개체(XXE Injection)

※ XML 외부 개체(XXE) XXE는 악의적인 자바스크립트를 막기 위한 필터장치를 우회하는 취약점으로 XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 외부 엔티티(Entity)를 사용할 때 발생한다. 오래되고 설정이 엉망인, 많은 XML 프로세서들은 XML 문서 내에서 외부 개체 참조를 평가한다. 외부 개체는 파일 URL 처리기, 내부 파일 공유, 내부 포트 스캔, 원격 코드 실행과 서비스 거부 공격을 사용하여 내부 파일을 공개하는데 사용할 수 있다. ※ XXE Injection 일반적으로 잘못 구성된 XML Parser를 사용하여 신뢰할 수 없는 XML 공격 코드를 주입시켜 실행시키는 응용프로그램에 대한 공격을 말한다. 해당 공격을 통해서 주요 시스템 파일 접근(LFI)이나 외부 악..

[Web Hacking] WebGoat SQL Injection(mitigation) 문제풀이

※ 선행 학습 필요 개념 Order by 절 SELECT문으로 검색된 데이터를 오름차순(ASC)이나 내림차순(DESC)으로 정렬시킬 때 사용한다. Default 값은 Ascending(오름차순)으로 ASC는 생략해도 되며, 문자는 알파벳 순서로 출력된다. ORDER BY절에 선택된 컬럼이 여러 개일 경우 앞(왼쪽)에 정의된 컬럼을 기준으로 먼저 분류한 후, 이후에 나열된 순서대로 분류한다. Order by가 SQL Injection에서 쓰이는 경우는 컬럼(속성)의 수를 확인하기 위함이다. 예를 들어 컬럼이 두 개인 테이블에 쿼리문을 확인해보자 1) select * from table_name where name="a" order by 2; (정상 출력) 2) select * from table_name ..

[Web Hacking] WebGoat SQL Injection(advanced) 5 문제풀이

※ 선행 학습 필요 개념 Blind SQL Injection Blind SQL injection은 데이터베이스에 참 또는 거짓 질문을하고 응용 프로그램 응답에 따라 답을 결정하는 SQL 주입 공격 유형입니다. 이 공격은 웹 응용 프로그램이 일반적인 오류 메시지를 표시하도록 구성되었지만 SQL 삽입에 취약한 코드를 완화하지 않은 경우에 종종 사용됩니다. 공격 유형 1) Boolean based Blind SQL Injection [ 외부 입력값 ] 제목검색: hello' AND 1=1-- (유효한 검색단어와 항상 참이되는 조건 부여) [결과] 게시판 검색됨 --> 참(true)이으로 간주 [ 외부 입력값 ] 제목검색: hello' AND 1=2-- (유효한 검색단어와 항상 거짓이 되는 조건 부여) [결과]..

[Bug Bounty] 네이버 버그 바운티 프로그램

Naver Bug Bounty Program https://bugbounty.naver.com/ko/ Naver Bug Bounty 네이버 버그 바운티 프로그램은 네이버 서비스의 취약점을 조기에 찾아 사용자들에게 안전한 서비스를 제공하기 위한 프로그램입니다. 전 세계의 보안 전문가들의 도움으로 네이버 서비스의 보안 취약점을 빠르게 찾아 고치고, 보안 전문가들의 노력에 적절한 포상을 지급함으로써 네이버 서비스를 더욱 안전하게 만드는 일을 장려합니다. bugbounty.naver.com

[Web Hacking] WebGoat SQL Injection(advanced) 3 문제풀이

※ 선행 학습 필요 개념 Union SQL Injection 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION 연산자를 이용해 SQL Injection 공격을 가하는 것을 말하며 공격자는 이 연산자를 이용하여 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어낸다. 공격이 가능한 전제 조건은 컬럼의 수가 같아야 하며 데이터 형식도 같아야 한다. step 1. 컬럼 갯수 알아내기 갯수를 알아내기 위해 앞의 쿼리문에 이어서 union select 1, %23 으로 쓴다면 에러가 뜰 것이다. 그러나 union select 1, 2, %23 => union select 1, 2, 3, %23 ... 순으로 컬럼의 갯수를 늘려가다보면 에러가 나지 않는 때가 나올때, 즉 컬럼의 갯수가 일치할 때를 알 수 있..

[Web Hacking] WebGoat SQL Injection 문제풀이

해당 문제를 번역해보면 다음과 같다 Q. 아래 양식을 사용하여 users 테이블에서 모든 사용자를 검색하십시오. 전체 목록을 얻기 위해 특정 사용자 이름을 알 필요는 없지만 'Smith'를 사용하여 한 사용자의 데이터를 볼 수 있습니다. 문제에서 Smith라는 단서를 줬다. SQL 쿼리문을 참으로 만들어 Injection을 시도해본다. Smith' or 1=1 -- 를 대입하면 쿼리가 무조건 참이된다. Get Account Info 버튼을 클릭하게 되면 테이블 전체를 응답값으로 받게 된다. 그 다음 문제인 Numeric SQL Injection을 살펴보자. Q. 아래 양식을 사용하여 users 테이블에서 모든 사용자를 검색하십시오. 전체 목록을 얻기 위해 특정 사용자 이름을 알 필요는 없지만 '101'을..

[Web Hacking] OWASP A1 인젝션 종류

Injection (인젝션) 이란? 인젝션 취약점은 SQL, OS, LDAP 등에 해당되며 신뢰할 수 없는 데이터를 명령어나 질의문의 일부분으로서 보내질 때 발생하는데, 공격자의 데이터는 개발자가 의도하지 않은 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다. Injection 종류 - SQL Injection 쿼리 등에 SQL 쿼리를 삽입하여 데이터베이스 조희, 변조 및 삭제 등의 공격을 의미한다. - CRLF Injection CRLF(%0d%0a) 패턴 삽입을 통한 악의적인 공격을 의미한다. - Command Injection 쿼리 등에 운영체제 명령어를 삽입하여, 명령어 실행 및 시스템 권한 획득 공격을 의미한다. 1. SQL Injection 1) Error..

[Web Hacking] CentOS8 WebGoat 설치

WebGoat란 OWASP에서 제공되는 웹 보안 취약성을 내포한 웹 어플리케이션이다. XSS, Injection, Backdoor 등 각 웹 보안 취약성을 이해하고 공격 방법을 이해할 수 있도록 만들어져 있으며, 각 단계별로 풀어나가면서 웹 취약성에 대해 이해하고 대응할 수 있도록 도움을 준다. 설치순서 1. CentOS 시스템 업데이트 $ sudo yum install epel-release $ sudo yum update -y && sudo reboot 2. WebGoat 다운 wget https://github.com/WebGoat/WebGoat/releases/download/7.1/webgoat-container-7.1-exec.jar Build software better, together G..

[Bug Bounty] 버그 바운티

버그 바운티? 기업의 서비스나 제품 등을 해킹해 취약점을 발견한 화이트해커에게 포상금을 지급하는 제도로, 기업들은 버그바운티를 통해 빠르게 보안 패치를 적용할 수 있다. 구글, 애플, 페이스북, 마이크로소프트(MS) 등 글로벌 기업에서 보안성을 고도화하기 위해 활발하게 시행 중이다. 국내에서는 2012년 이 제도를 도입했지만 취약점을 밝히는 것을 꺼려하는 기업 문화와 보안 불감증 등의 이유로 포상금도 적고 신고 건수도 저조한 상태다. 국내에서 버그바운티를 실시하는 곳은 삼성, 네이버, 카카오, 네오위즈, 한글과 컴퓨터 등이다. [네이버 지식백과] 버그바운티 (시사상식사전, pmg 지식엔진연구소) 버그 바운티 참고 URL https://noirstar.tistory.com/category/Security/..

반응형