올리디버거란?

기계어를 어셈블리어로 바꾸는 것을 말한다. 

올리디버거의 초기 설정

1. 올리디버거의 파일을 압축을 풀고, 올리 디버거 폴더에 UDD 폴더와 Plugin 폴더를 만든다.

 

2. 올리디버거를 실행시킨후, options -> Appearance 로 들어간다. directories 탭에서 UDD pathPlugin path를 아까 만들어준 폴더로 각각 설정한다. 

 

3. 올리디버거를 종료한후 올리디버거 폴더에 있는 3개의 DLL파일을 Plugin 폴더로 옮겨준다.

Plugin 폴더에는 플러그인이 들어가고, UDD 폴더에는 백업 파일이 들어간다. 

4. 디버깅 옵션을 하나 더 변경해주어야 하는데, Options -> Debugging options에서 Event 탭에서 Entry point of main module를 체크하여준다.


Posted by 엽잉

웹에서의 클라이언트 스크립트는 여러가지가 있지만 대표적으로 html과 javascript가 있다. 말 그대로 클라이언트에서 실행도기 때문에 취약한 사이트의 경우 클라이언트에서 서버에 전하는 요청 값을 조작하여 원하는 작업이나 정보를 획득 할 수 있다. 이 취약점으로 있는 경우 비밀글 조회나 등록, 수정권한 획득등 매우 폭넢은 공격이 가능하다.


http://www.javahacking.com
지금부터 ↑위사이트에 제공하는 예제를 통해서 보이겠다.


1.1 Level1 풀이 - URL을 통한 GET 형식

Level 1 에서의 첫 화면을 살펴보면 이름을 공백으로 작성을 한다음 저장을 하라고 되어있습니다. 현재 상태에서 저장 버튼을 누르면 그림처럼 이름을 입력하라는 경고문가가 나타난다.


취약점을 분석을 위해서는 가장 먼저 소스를 살펴 보아야 한다.

화면에 마우스 오른쪽 마우스 클릭 후 소스보기를 클릭하면 소스를 볼 수 있다.

<html>
<head>
<title>
HTML
</title>
<link href="../web.css" rel="stylesheet" type="text/css">
<script>
function send()
{
//이름의 공백 여부를 체크하는 자바스크립트 함수 [#1]
if(document.main.name.value == '')
{
alert('이름을 입력해 주세요.');
return;
}
//제목의 공백 여부를 체크하는 자바스크립트 함수
if(document.main.subject.value == '')
{
alert('제목을 입력해 주세요.');
return;
}
document.main.submit();
//form 이름이 main 을 전송한다.
}
</script>

</head>
<body>
<br>
<span class="font">이름을 공백으로 작성해 주세요.</span>
<br>
<hr>

<form method="post" name="main" action="name_blank2.jsp">
//form 형식을 post로 지정하고 name_blank2.jsp로 전송한다.[#2]
<table width="500" border="0" CELLPADDING=0 CELLSPACING=0>
<tr bgcolor="#F7FCFE">
<td height="22" align="center" class="top" width="100">이름</td>
<td height="22" align="center" class="top">
<input type="text" name="name" size="50"></td>
</tr><tr bgcolor="#F7FCFE">
<td height="22" align="center" width="100">제목</td>
<td height="22" align="center">
<input type="text" name="subject" size="50"></td>
</tr><tr bgcolor="#F7FCFE">
<td height="22" align="center" width="100">내용</td>
<td height="22" align="center">
<textarea name="content" cols="49" rows="5"></textarea></td>
</tr>
</tr><tr>
<td height="30" align="center" colspan="2">
<input type="button" value="저장" onClick="javascript:send();"></td>
</tr>
</table>
</form>
</body>
</html>

Level1에서 제시한 문제는 이름을 공백값으로 지정하고 값을 저장하라는 문제이다. 소스를 살펴보면 자바스크립트로 인증을 걸어놓은 [#1] 부분 때문에 그림 2-3과 같은 경고문이 나타나는 것을 알 수 있다. 이를 우회에서 값을 전달하겠다.
[#2]의 폼문을 보면 action='name_black2.jsp'가 있으며 전송하고자 하는 페이지는 name_blank2.jsp이라는 뜻이다. 또한 해당 form문 안에 input 값들은 name, subject, content가 있는 것을 알 수 있다.
이 정보를 이용하여 다음과 같은 url 공격 코드를 작성 할 수 있다.


1.2 Level1 - html 을 pc에 저장후 인증우회
html소스보기로 본 내용을 pc에 html형식으로 다른 이름으로 저장을 한다.

다운을 받을 후 아래와 같이 자바스크립트 부분과 url정보의 소스를 변경하여 클라이언트에서 실행하여 공격을 할 수 있다.


<html>
<head>
<title>
HTML
</title>
<link href="../web.css" rel="stylesheet" type="text/css">
<script>
function send()
{//자바 스크립트 전부 제거.
document.main.submit(); //전송함수만 남겨둔다.
}
</script>

</head>
<body>
<br>
<span class="font">이름을 공백으로 작성해 주세요.</span>
<br>
<hr>

<form method="post" name="main"
action="http://www.javahacking/webgame/level1/name_blank2.jsp">
<table width="500" border="0" CELLPADDING=0 CELLSPACING=0>
<tr bgcolor="#F7FCFE">
<td height="22" align="center" class="top" width="100">이름</td>
<td height="22" align="center" class="top">
<input type="text" name="name" size="50"></td>
</tr><tr bgcolor="#F7FCFE">
<td height="22" align="center" width="100">제목</td>
<td height="22" align="center">
<input type="text" name="subject" size="50"></td>
</tr><tr bgcolor="#F7FCFE">
<td height="22" align="center" width="100">내용</td>
<td height="22" align="center">
<textarea name="content" cols="49" rows="5"></textarea></td>
</tr>
</tr><tr>
<td height="30" align="center" colspan="2">
<input type="button" value="저장" onClick="javascript:send();"></td>
</tr>
</table>
</form>
</body>
</html>

이 소스에서는 자바 스크립트 인증 부분을 삭제하고 form 부분의 action을 전체 url로 변경한 후 해당 html문을 실행하고 저장버튼을 누르면 level1의 암호를 볼 수 있다.


1.3 자바스크립트로 직접 호출
웹 페이지 주소창에 javascript: 를 쓰고 뒤에 현재 페이지에 있는 자바스크립트 함수명을 호출하면 웹페이지의 자바스크립트 함수를 마음대로 호출 할 수 있다. level1의 문에도 이러한 방법을 이용하여 form문을 submit로 바로 전송 할 수 있다.

javascript:document.main.submit();




'웹해킹' 카테고리의 다른 글

SQL  (0) 2012.03.21
웹 해킹 툴 - Paros툴 기본 사용법  (3) 2012.01.26
1-1 클라이언트 스크립트 조작  (0) 2012.01.06
Posted by 초코무늬
BackTrack 5는 기본적인 언어 지원이 영어가 주인지라 한국어는 추가로 설치가 필요합니다.



apt-get update
 


 
 apt-get install -y synaptic


먼저 시냅틱 패키지 관리자를 설치합니다. 시냅틱 패키지 관리자는 버전관리라던가 다른 버전용 패키지를 손쉽게 설치할 수 있게 도와줍니다.

 



 다음은 시스템 패키지 관리자를 통해서 ubuntu software center 를 설치하는 과정입니다.

 

시스템 패키지 관리자는 여기 있습니다.




이 창이 뜨는데 Close를 눌러주시면 됩니다.




우측 상단에 빠른검색이 있는데 창에 software-center을 입력하시면 패키지란에 software-center 이 나옵니다. 이것을 마우스로 우클릭 해줍시다.

 
2번째에 있는  Mark for Installation을 클릭합니다.


Mark 눌러줍시다!

 


Apply 를 클릭해줍니다.


 

 다시 Apply를 클릭
 

 설치 하는중...
 

 
설치가 다 되면 Automatically close after the cahgnes have been successfully applied를 체크해주면 자동으로 창이 닫힙니다. 




우분투 소프트웨어 센터로 언어 지원 설치하기


클릭해줍니다. 



아까와 똑같은 방법으로 우측상단의 빠른 검색으로 language support를 입력하고, Install을 누릅니다.

설치중.....




설치가 완료되면 이미지에 초록색으로 체크표시가 나타납니다.





 한글 언어팩 설치 전 소프트웨어 소스 서버 설정하기

System - Administration에 있는 Software Sources를 클릭합니다.




5개 모든 항목을 체크합니다.

 처음에 보면 Installable from 옆에 있는 칸에 Main server가 선택되어 있을겁니다. 이것을 Other... 으로 재선택합시다.

한국을 찾아서 처음 란에 있는 ftp.daum.net 을 선택하고 Choose Server 버튼을 클릭합니다.


Reload와 Close 가 있는데, 새로 추가되거나 업데이트 된 소프트웨어를 다시 불러오시려면 [ Reload ] 를 눌러주시고, 그냥 별 필요 없다고 생각되시는 분들은 [ Close ] 를 눌러주시면 됩니다.




 한국어 설정

 System - Administration 에 있는 Language Support 를 클릭합니다.

 Install 버튼을 누릅시다.
 


Install / Remove Languages... 을 클릭합니다.


역시나 Korean 을 찾아서 아래쪽 Components 의 3가지 항목이 잘 체크되어있나 확이나신후 Apply Changes 를 눌러줍시다.



Text 쪽으로 옮겨오셔서 한국어를 선택하신다음에 Apply System-Wide... 버튼을 클릭하고 재부팅을 해주시면 되겠습니다.

완료
 

'리눅스' 카테고리의 다른 글

BackTrack 5 Linux에서의 한글 기능 설정하기  (0) 2012.01.06
Backtrack 5 한글 설치 방법  (1) 2011.12.01
Posted by 효능


티스토리 툴바