본문 바로가기

Security/Web Hacking

Blind SQL Injection Blind SQL Injection 악의적인 문자열 삽입 대신 쿼리결과로 나오는 참, 거짓에 따라 DB에 정보를 취득하는 공격기법이다. 이 Blind SQL Injection 을 이용하면 숫자형태의 데이터까지도 알아낼수도 있다. 간단한 예제로 알아보자.  정상적인 페이지 URL 입니다. 마지막에 " 을 넣어 봤다.  데이터베이스의 오류를 통해서 이서버는 무슨 데이터베이스를 사용하는지 알게되었다. 이건 아주간단한것이고, URL 쿼리문에 SQL 구문을 넣어가면서 페이지가 뜨면은? 참인거구 거짓이면 페이지가 안뜹니다 천천히 정보를 취득해나가는거죠. 완전 노가다입니다. Example> http://www.xxx.com/board/board_view.asp?num=106 and substring(db_name.. 더보기
No.12 Web Shell, 파라미터 변조 방어법 Web Shell 과 파라미터변조 방어법입니다.  1. Web Shell 방어법  upload 폴더 응용프로그램의 매핑을 제거 시켜줍니다. 웹 셀 업로드시 실행되지않게 업로드 폴더의 모든 확장자에 대해서 응용프로그램 매핑을 제거하시면 됩니다.  [인터넷 정보서비스] => [기본 웹 사이트] => [자신이 생성한 테이블] => [업로드폴더테이블명] => [속성]  에서 마우스 오른쪽 클릭하여 [디렉터리] 탭을 선택합니다. 하단의 [응용프로그램 설정] 부분에서 [만들기] -> [구성] 버튼을 클릭하면 [응용프로그램 구성]창이 뜹니다. 이때 [매핑]탭에서 모든 내용을 제거하시면됩니다. 위와 같은 이미지를 확인해보시면됩니다. 2. 파라미터 변조 방어법 파라미터변조 공격에 대응하기 위해서는 삭제와 .. 더보기
No.11 파라미터 변조 공격 파라미터란 ? => 매개변수라 말할수 있으며, 웹 페이지에서 어떤 요청을 할때 요청에 대한 값을 가지고 있는 변수라고 할수 있습니다.이 때 이 파라미터의 조작을 가하면 비정상적인 동작을 유발시킬수있습니다  실습 해보겠습니다.. 과정 1. admin 계정으로 게시물을 하나 등록합니다   과정 2. 일반 사용자로 또다른 게시물을 등록시킵니다. 과정 3. 게시물을 확인합니다 위의 이미지를 보듯 파라미터변조 #1은 관리자 파라미터변조 #2는 일반사용자임을 알수있습니다. 인제 파라미터변조 #2를 이용해 관리자의 게시물을 변경해보도록하겠습니다 프록시 툴은 Odysseus를 씁니다. 자 저 과정은 1. 파라미터변조 #2를 클릭 2. 수정 3. 그리고 변경을 클릭시에 나오는 idx값을 변조시킵니다. 자 위의 .. 더보기
No.10 Web Shell Upload 공격 이번엔 Web Shell upload 공격입니다. 일반적인 웹셀 업로드 공격은 cmd창을 실행시키는 방법으로 수행됩니다. 실습을 시작해보겠습니다 일단 상대방의 pc에서 cmd창을 실행시킬수있는 asp문을 짭니다. 그후 상대방의 서버 게시판에 업로드 시킵니다. 저가 업로드 시킬려는 cmd실행시키는 asp문의 이름은 cmdasp.asp입니다. 위 같이 업로드 시킵니다. 그후 cmdasp.asp가 업로드된 위치로 이동을 해야됩니다. 고로 오른쪽 클릭해서 바로가기복사 나 속성에서 업로드 주소를 봅니다. 위처럼 업로드 된 위치를 확인합니다. 그후 붙여넣기로 바로 업로드된 위치로 이동을합니다. 그럼 위치로 이동된 화면을 확인해보겠습니다. 자 위와 같은 커맨드창이 뜨네요~ 저기에 디렉토리 확인 명령인 dir 을 해보.. 더보기
No.9 SQL인젝션 방어법 SQL 인젝션 방어법에 대해 알아봅시다. 1. 사용자 입력 값 검증 즉 사용자의 입력 폼과 URL의 입력값을 검증하여 특수문자가 포함되어 있는지 여부를 확인하여 필터링 해야 됩니다. 예를들어 double quote(") single quote(') , (\), (;), (%), (@), (*), (&), (()), ($), (^), (~) , (?) 등의 특수문자등을 필터링해야됩니다 필터링을 위해선 replace() 함수를 쓰시면됩니다. 즉 아까 보았던 board_search.asp => 사용자가 어떤이름으로 게시판 검색asp문을 만드느냐에 따라 다릅니다. 이곳에 더보기
No.8 SQL인젝션 공격 실습(2) 1. 시스템 명령어 실행 select * from member;exec master..xp_cmdshell 'ping 127.0.0.1' SQL쿼리 분석기에 위와 같이 입력하시면 member정보 출력하는거와 ping명령어가 실행되는 것을 볼수있습니다. (;) 즉, 세미클론으로 두가지 명령어를 한번에 실행하는 것입니다. 우와 같은 결과를 보실수 있습니다 즉, 이러한 성질을 이용해 서버에 명령어 실행을 할수 있는것입니다. 그렇다면 실습해봅시다. 로그인 아이디 입력폼에 exec matser..xp_cmdshell 'md c:\board\bbb' 를 하시면 됩니다 하지만 이때. 문제점은 로그인 페이지 입력값의 길이가 위보다 짧게 지정되 있을때 입니다. 이것을 오딧세이 즉 프록시툴로 회피해 보겠습니다. 일단 ad.. 더보기
No.7 SQL 인젝션 공격 실습 SQL인젝션 공격 실습법의 종류 1.인증 우회 => 말 그대로 우회 즉 돌아서 인증을 거치겠다는 것입니다. SQL의 가장 대표적인 공격법입니다. 한번 알아보겠습니다 가. OR연산 이용 즉 입력 폼에 'or'1='1문을 입력하여 결과값을 참으로 하는 법입니다. 예를들어 아이디를 TEST_ID로 하고 패스워드를 test'or'1'=1'을 입력하게 되면 어떻게 될까요? 데이터베이스에 요청하는 쿼리문은 최종적으로 select * from member where id = 'TEST_ID' and bPass\'test'or'1'='1' 과 같이 전달되고 삽입된 or조건에 의해서 or 앞이나 뒤의 두 조건중 단 하나라도 참이면 결과값이 참이 전달이 되어 로그인이 가능하게 되는것입니다. 여기서 주의해야 하실점은 (').. 더보기
No.6 SQL인젝션 알아보기 이번엔 Sql인젝션 공격에 대해 알아봅시다. SQL인젝션 공격 이란?? => SQL 인젝션 공격은 웹 어플리케이션 자체의 버그를 이용하는 웹 해킹 방법으로 SQL 서버에서 실행되는 코드에 악의적인 코드를 추가하거나 삽입하여 권한이 없는 사람이 정보를 획득 하거나 조작 하는 방법입니다. SQL의 종류로는 MS-SQL과 MYSQL등이 있습니다만 서로에 쓰이는 명령어는 거의 흡사하므로 이번에 배우면 두가지 SQL서버에서도 충분히 가능하리라 봅니다. SQL의 저장경로? => 웹 서버 관리자들이 어떤 서버를 만들고 그 데이터베이스처리를 쉽게하기 위해 만들어진것이 SQL쿼리분석기라고 합니다. 쿼리분석기의 모습을 살펴봅시다. 위의 모습이 쿼리입니다. 자신이 회원가입 양식을 어떻게 짰냐에 따라 들어가는 열이 달라지는데.. 더보기
No.5 WebHacking의 시작 WebGoat설치 webgoat 설치방법을 남겨드립니다 ㅋㅋ 맨땅에 해딩몇번하니깐 되네요 ㅋㅋ 일단 jdk와 tomkat설치를 해주셔야합니다 1.http://java.sun.com/downloads/ 여기로 들어가셔서 se버전을 다운받으셔야되요 그게 일반사용자입니다 ㅋㅋㅋ 다운받으실때 accpet하시면되요 밑에 라이센스체크하는부분에 안하시면 다운안받아집니다 . .그리고 가입을 하셔야될텐데 가입하시는건 매우 간단해요 ㅋㅋ 보면 바로 하실수있습니다 저가 추천하는건 jdk 6.0 update27 버전인가 그거입니다 7.0은 아직 몬가 ㅋㅋㅋㅋ 그리고나서 java가 제대로 설치되었나를 확인하는 방법은 cmd에서 java -version이나 java 치셨을때 오류없이 나오면 제대로 설치가된거에요 2.그다음에 tomkat설치를 해주.. 더보기
No.4 XSS 공격 실습 xss 공격 실습해보겠습니다. 일단 공격스크립트가 포함된 게시물을 읽어야 하기 때문에 .asp로 된 파일을 하나 생성합니다. 쿠키값을 getcookie.txt파일로 저장합니다. msg=request("msg") set fs=server.CreateObject("scripting.FileSystemObject") set thisfile=fs.OpenTextFile(testfile,8,true,0) thisfile.writeline(""&msg&"") thisfile.close set fs=nothing %> 간단히 메모장을 열어 공격자 pc에서 작성하시면됩니다. 시나리오로는 이 xss공격 스크립트가 입력된 게시물을 admin이 읽으면 admin의 쿠키값이 getcookie.txt 파일에 저장되고 공격자는 .. 더보기
No.3 OWASP Top 10 2010 한글판 카페 > SecurityPlus | mirrk http://cafe.naver.com/securityplus/15784 안녕하세요. SecurityPlus입니다. OWASP Top 10 2010 한글판을 공개합니다. 지난 2010년 4월 19일에 OWASP에서 발표한 OWASP Top 10 2010 영문판에 대한 한글 번역입니다. 다운로드: OWASP Top 10 2010 한글판 금번 한글 번역을 발표하면서, 지금까지 간과되었던 OWASP Top 10 2007 대비 2010년도에서 달라진 점을 다시 한 번 강조합니다. 기존 OWASP Top 10 2007년판을 포함한 이전 버젼은 취약점과 취약점에 대한 대응을 중심으로 한 정보전달이 위주였으나, 금번 2010년판에서는 취약점이 아닌 위험 및 영향 평가 개.. 더보기
No.2 웹 service란 ? 이번에는 웹 서비스에 대해 알아보겠습니다. 앞에서 말했듯 웹 서비스에 쓰이는 언어로는 정적인 언어 : HTML 동적인 언어 : ASP , JSP, PHP 이 있습니다. (1) HTML HTML은 가장 단순한 형태의 웹 언어로서, 웹 서버가 HTML문서를 저장하고 있다가 클라이언트가 요청하는 HTML 페이지에 대한 문서를 클라이언트에 전송해줍니다. 이런 방식이 바로 정적인 방식입니다. 저런 식의 순서대로 html언어 처리가 됩니다. 하지만 저런식의 html언어는 서버에서 제공된 html문으로 이루어진 웹 페이지이기 때문에 상대방의 취향과 변화에 적응할 수 없고, 새로운 것을 추가하려고 해도 시간과 비용이 많이 걸리게 됩니다. 허나. 보안에서는 매우 좋습니다 (2)SSS (Server Side Script).. 더보기
No.1 HTTP에 대하여 . . 늦게 올리는데 밑에 XSS를 이해하는데 기초를 두기 위해 올려봅니다. HTML과 웹 service에 대해 알아볼께요 인터넷에서 가장 많이 쓰이는 프로토콜이 HTTP입니다. 그래서 웹서버를 HTTP서버라고도 많이 부르는데요 이러한 웹서버를 구현하기 위해 필요한 웹 언어가 있습니다 정적인 언어 : HTML 동적인 언어 : ASP, JSP ,PHP 이 있습니다 그럼 HTTP즉 웹서버에서의 처리 요청 단계를 알아봅시다. 위에 발 그림을 보면서..^^.. 1번 단계 : 일단 client가 웹 브라우저를 이용해 서버에 연결을 요청합니다. 연결 요청을 받은 서버는 클라이언트에 대해 서비스를 준비합니다 2번 단계 : 클라이언트는 읽고자 하는 문서를 서버에 요청합니다 3번 단계 : 서버는 웹 문서중 클라이언트가 요청한 .. 더보기