본문 바로가기
반응형

전체 글87

Lord of SQL Injection : Zombie_assassin[17] [Level 17. Zombie_assassin] Sol → ?id="&pw=%231=1 ro 이번 단계도 16단계와 마찬가지로 id에 대한 결과만 있으면 clear 할 수 있는 문제이다. 하지만 addslashes와 strrev라는 문자열 reverse 함수가 사용되었다. id에 hello, pw에 bye를 넣어보면 어떤 역할인지 바로 알 수 있다. 역슬래시(\)를 아스키 코드로 바꿔서 %5C를 넣어보았다. \로 인식됐지만 addslashes 때문에 뒤에 \가 하나 더 붙었다. ' 역시 addslashes 때문에 \'가 되었다가 strrev로 인해 '\로 바뀌어서 들어간 것을 볼 수 있다. 위의 두 경우에서 힌트를 얻을 수 있는데, single quote (') double quote (") backs.. 2021. 12. 16.
Php로 웹 개발하기 : 문의 게시판(1) 이번 웹 개발에서 마지막으로 구현할 페이지는 비회원도 사용할 수 있는 문의 게시판이다. 기존에 만들었던 일반 게시판과 거의 유사하지만, 비회원도 문의글을 작성하고 비밀번호를 통해 글을 조회할 수 있다는 점만 차이가 있다. 문의 게시판의 형태는 게시판과 똑같이 만들 것이고, 회원이 글을 쓰면 자신의 비밀번호로 설정되고 비회원이 글을 쓰면 따로 비밀번호를 입력받도록 만들 것이다. 우선 qna 테이블을 만들어주자. mysql> CREATE TABLE qna ( -> `id` int(5) AUTO_INCREMENT PRIMARY KEY, -> `title` varchar(20), -> `content` varchar(5000), -> `password` varchar(20) NOT NULL -> ); [qna... 2021. 12. 15.
Lord of SQL Injection : Succubus[16] [Level 16. Succubus] Sol → ?id=\&pw=or 1=1%23 id와 pw에 값을 넣되, 작은따옴표('), 온점(.), 언더바(_)등을 사용할 수 없는 문제이다. clear 조건이 result ['id']가 존재하는 것이므로 id, pw를 정확히 맞힐 필요 없이 쿼리가 참이되기만 하면 된다. 쿼리를 참으로 만들기 위해 쓸 수 있는 트릭들, union이나 and 1 = 1 등은 모두 기존의 작은따옴표를 닫아주어야 사용이 가능한데, 작은따옴표를 사용하지 않고 어떻게 작은따옴표를 닫아줄 수 있을까? 우리가 트릭을 사용할 수 있는 인자가 2개라는 점, 그러니까 pw값 뿐만 아니라 id 값도 조작할 수 있다는데서 힌트를 얻어 작은따옴표를 만들어줄 수 있다. 바로 id=''의 두 번째 따옴표를 .. 2021. 12. 14.
Lord of SQL Injection : Assassin[15] [Level 15. Assassin] Sol → ?pw=902% like는 특정 문자열이 들어간 행을 찾을 때 사용된다. 예를 들어, 우편번호를 정확히 모르더라도, 6이 들어간 것을 안다면 '6%'으로 표현하여 찾을 수 있다. 물론 6이 뒤에 들어갔다면 %6, 어딘지 모르지만 들어있다면 %6%으로 찾을 수 있다. 이를 이용해서 우선 %를 먼저 넣어보았다. 원래는 %를 넣으면 모든 쿼리가 출력되는데, Hello guest만 출력되는 것을 보니 guest의 아이디가 제일 위에 있어서 guest 하나만 가져오는 것 같다. %a% %b% %c%와 %0% %1% %2% 등 알파벳을 몇 개 넣어보았는데, 특정 단어에서 계속 guest만 떴다. guest의 pw에는 들어있지 않지만 admin의 pw에는 들어있는 문자.. 2021. 12. 13.
File Upload 공격(2) 저번 포스팅에서는 File Upload의 개념과 공격을 위해 필요한 경로 파악하는 법에 대해 알아보았다. 이번에는 File Upload 공격을 막을 수 있다고 알려진 대응 방안의 우회 방안에 대해 알아볼 것이다. ① 파일 유형(Content-Type) 서버는 파일을 주고받을 때 MIME(Multipurpose Internet Mail Extensions) Type으로 파일의 종류를 확인한다. 따라서 이 MIME-Type의 Content-Type을 확인해서 image/jpeg등인 경우에만 업로드할 수 있도록 만들 수 있다. [우회 방안] BurpSuite으로 패킷을 확인해보면 위와 같이 img를 업로드했을 때는 Content-Type : image/jpeg이지만 php 파일을 업로드하면 Content-Ty.. 2021. 12. 12.
File Upload 공격 파일 업로드는 공격자가 원하는 임의의 파일을 업로드할 수 있는 취약점이다. 사용자가 올린 파일을 검증하지 않고 모두 서버에 저장하기 때문에 발생하며, 공격자는 이 점을 이용하여 악성 파일을 업로드할 수 있다. ① 공격 시나리오 1) 서버 측 실행 파일 업로드 만일 서버에서 파일 업로드 기능에 대해 아무런 검증을 하지 않는다면, web shell과 같은 서버 측 백도어 파일을 업로드할 수 있다. 파일 업로드 기능을 활용한 가장 대표적인 공격으로, 시스템 명령을 수행해서 쉘을 획득하는 공격이 있다. 2) 피싱 사이트 악성 코드를 업로드하여 시스템 명령을 수행하는 것 외에도, 서버 측 Html 파일을 업로드하여 피싱 사이트를 만들 수도 있다. 사용자는 자신이 접속한 사이트에서 응답받은 페이지이기 때문에, 큰 .. 2021. 12. 11.