2017. 10. 30.

[웹 취약점] 톰캣 취약한 메소드 차단하기

# 작업 대상 파일
/tomcat/conf/web.xml

# 상세 내용
<security-constraint>
  <web-resource-collection>
    <web-resource-name>Protected Context</web-resource-name>
    <url-pattern> /* </url-pattern>
    <http-method>PUT</http-method>
    <http-method>DELETE</http-method>
    <http-method>HEAD</http-method>
    <http-method>TRACE</http-method>
    <http-method>OPTIONS</http-method>
  </web-resource-collection>
  <auth-constraint/>
</security-constraint>

Continue reading

2017. 10. 29.

버프스위트 확장 기능 - DirBuster -1

DirBuster는 웹 서버에 대해 디릭터리, 파일을 스캔하는 JAVA 기반의 응용 프로그램이다.
사용방법은 다음과 같다.

1) 다음의 URL 에서 ZIP 파일을 다운로드 한다.

  • 다운로드 링크 : https://github.com/vulnersCom/burp-Dirbuster/


2) ZIP 파일로 다운로드 한 후, 버프스위트에서 'Extender > Extensions > Add' 클릭

3) Extension Details 의 Select file 클릭 후 압축 해제한 폴더의 "target" 폴더 내 jar 파일 열기 클릭


4) 정상적으로 확장 플러그인이 설치되었으면, 상단에 'Disbuster' 탭이 생긴것을 확인 할 수 있다.

5) 본격적인 점검을 위해서는 페이로드가 필요하다.  디렉토리 리스팅을 위한 페이로드는 아래에서 다운로드 할 수 있다.

  • https://www.owasp.org/index.php/Category:OWASP_DirBuster_Project



6) 실행해보면 아래와 같이 수행 결과를 확인 할 수 있다.


확장 플러그인이 아닌 원래 DirBuster 프로그램을 실행한 화면은 아래와 같다. 

버프스위트는 dirbuster에 비해서 결과값 초기화 기능이 없고, 스캔정보에 대한 인터페이스가 직관적이 않아 다소 불편한 느낌을 받았다.

Continue reading

2017. 10. 12.

[메모] 써볼만 한 버프스위트 extender 목록

.NET Beautifier
: Purpose: To make .NET body parameters more human-readable. Very helpful for examining things like VIEWSTATE contents.

Active Scan++ (Pro only)
: Purpose: Adds extra scan features to the passive and active scanning tools in Burp.

HTML5 Auditor (Pro only)
Purpose: Checks HTML5 attributes for flaws.

Identity Crisis (Pro only)
Purpose: Checks the web site to see if it responds differently to different User-Agent strings.

J2EEScan (Pro only)
Purpose: Examines J2EE applications/servers for vulnerabilities.

JS Beautifier
Purpose: Helps make Javascript more readable in source code.

JSON Decoder
Purpose: Reformat JSON into an easily-readable format.

co2

xss Validator

burp notes

Continue reading

[트러블슈팅] Virtualbox 에 kali 설치 한 후 게스트 확장 수행


버츄얼박스에 칼리리눅스를 막 설치한 후에는 작업환경이 매우 작다. 이를 위해 게스트 확장을 진행해야 하는데 오류가 발생한다. 이유는 실행을 위한 패키지가 사전에 설치되지 않았기 때문이다. 몇번 헤메다가 구글링을 통해 해결했다.

참고에서 글쓴이가 하는대로 진행하기 전에, 아래 내용을 진행해야 한다. 그리고 재부팅을 수행한다.

apt-cache search linux-headers
apt-get install linux-headers-4.9.0-kali4-amd64 (이 부분은 uname -r 로 확인한다.) ( apt-get install linux-headers-$(uname -r)  이렇게 하면 더 편할 듯)


1) apt-get update
2) apt-get upgrade -y
3) apt-get dist-upgrade -y
4) reboot
5) apt-get install linux-headers-$(uname -r)
6) cd /media/cdrom0
7) sh ./VBoxAddition.run


#참고

  • https://unix.stackexchange.com/questions/363713/unable-to-install-virtualbox-guest-additions-in-kali/363738

Continue reading

[웹 취약점] 버프스위트로 파라미터 무차별 대입하고 결과 얻기

취약점 진단을 할 때 파라미터 조작 취약점이 발견되는 경우가 굉장히 많다. 무작위로 인자값을 입력하여 얻어지는 응답값에는 '악의적인 공격자' 입장에서 유용하게 활용 될 만한 정보가 될 수 있다. 경험상 시나리오를 짜보면, 다음과 같은 사례가 있을 수 있다.

"범죄경력 조회 메뉴에서 POST로 전달되는 파라미터 값을 변조하여 응닶값에서 이름과, 주민등록번호, 주소를 파싱하여 텍스트 파일로 저장한다."
"헤더값을 변조하여 서버에 전달하여, 200 OK으로 전달되는 데이터를 취합 한다."

# 파라미터 조작 방법
파라미터 조작 공격이 유효한지 진단하기까지는 굉장히 쉽다. 다만 실제 공격자 입장에서 해당 공격을 통해 유효한 데이터를 얻느냐 얻지 못하느냐는 또 다른 문제이다.

공격은 '파이썬 또는 펄 프로그래밍'과 '버프스위트' 두 가지를 이용하여 시연 될 수 있다.
본 포스트는 버프스위트를 이용한 파라미터 대입에 대한 것이다.


1. Request 패킷을 잡고 'Send to intruder' 클릭
(위 사진은 예시 입니다. 실제로 구글을 대상으로 공격하지 않습니다.)

2. clear를 눌러 해지하고 원하는 파라미터를 블록지정하여 Add 버튼을 클릭한다.

3. Payloads 탭의 Payload type 에서 옵션을 선택한다. number, Dates, bruteforce 등등 있다. (효율성 면에서는 고민해야 할 필요가 있다. 펄이나 파이썬으로 짠 스크립트를 활용하는 측면에서 결과값이 많이 상이 할 수 있다. 고민해서 잘 활용 해야 한다.)

4.  payload type을  number 로 선택하면 아래와 같은 옵션을 볼 수 있다.


5. start attack 을 누르면 공격이 시작되며 창이 하나 뜨면서 페이로드 및 결과를 확인 할 수 있다.

6. intruder > Options 메뉴의 'Grep - Extract' 섹션에서 'Add' 를 클릭한다.

7. 이 후, 창이 뜨고, 특정 페이로드를 지정할 수 있다. 
'Refresh response' > 영역 지정 >  OK 

8. Attack start를 하면 공격이 시작된다. 도구에서 결과를 보면 한글이 깨지지만, 보고서를 다운받아 출력하면 한글이 제대로 보인다. save > Results table 을 통해 보고서를 다운받을 수 있지만 free edition 버전에서는 사용 할 수 없다.

** 패스워드 brute force 역시 버프 스위트에서 진행 할 수 있다.
Intruder > " Grep - Match " 메뉴에서 진행 할 수 있으며 매칭하고자 하는 문자열을 입력하면 아래와 같이 매칭 문자열이 발견된 요청을 확인 할 수 있다. 
즉, 로그인이 성공했을 때 발견되는 문자열을 입력하여 매칭된 패스워드를 찾을 수 있다는 얘기다. 





# 참고
  • http://blog.naver.com/PostView.nhn?blogId=crehacktive3&logNo=221077074955&parentCategoryNo=&categoryNo=9&viewDate=&isShowPopularPosts=false&from=postList

Continue reading

2017. 10. 11.

[웹취약점] Cross-Site WebSocket Hijacking Tester (SCWSH)

평소 해커원에서 'Hacker activity' 내용을 즐겨 보곤한다. 여기서 종종 나오는 취약점이 CSWSH 이다. 개념이 조금 생소해서 조사를 조금 해보았다.

# WebSocket
웹 소켓은 웹 페이지에서 실시간으로 동작하는 웹 서비스를 만들어 줄 수 있는 표준 기술이다. (예를 들면, 채팅과 같은)
일반적으로 웹 프로토콜인 HTTP는 Request와 Response 기반으로 새로 요청이 발생하면 페이지를 다시 그려야 하는 구조이다. 이와 같은 환경아래서 인증 정보를 유지하기 위해,  쿠키도 사용되게 되었다.
http://www.websocket.org 에서 많은 내용을 확인 할 수 있다.
즉, 사용자는 페이지의 이동없이 내부 동작을 처리하길 원했고, 이 때문에 WebSocket 이 사용되게 되었다. (이는 HTML5의 표준으로 올라가게 되었다.)

아래와 같이 Upgrade 헤더와 connect 헤더에 각각 WebSocket, Upgrade 가 들어있는 것을 볼 수 있다. 이는 HTTP 기반 웹 처리에서 WebSocket으로 넘어가게 하는 구절이며, 이와 동시에 클라이언트가 랜덤한 키 값을 서버로 보내어 토큰을 생성하고 반환하는 과정, 즉, Handshake가 이루어진다.


GET /.... HTTP/1.1
Upgrade:WebSocket
Connection: Upgrade

Request
GET /?encoding=text HTTP/1.1
Host: echo.websocket.org
origin:http://www.websocket.org
Sec-WebSocket-Key:x3JJHMbDL1EzLkh9GBhXDw==    -> BASE64(Random Byte)
Connection: keep-alive, Upgrade
Upgrade:WebSocket

Response
HTTP/1.1 101 Switching Protocols
Upgrade:WebSocket
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=  -> BASE64(SHA1(GUID))

Sec-WebSocket-Key와 Sec-WebSocket-Accept 부분은 개인정보 보호 및 무결성 검증을 위해서 사용되는 부분이다.



# Cross-Site WebSocket Hijacking 
CSWSH 에서는 origin 필드가 핵심이다.
origin 은

  • WebSocket 접속을 요청한 페이지의 scheme, hostname, port(만약 기본포트가 아닐 경우에만 포함) 정보
  • WebSocket 서버에서 요청 페이지에 따라 다른 처리방식을 각각 결정하기 위해 필요한 정보이다.
CSWSH 공격은 바로 이 orgin 필드의 기존 값을 악성 사이트로 변조하여 서버에 전달하는 기법이다.
때문에, 당연히 서버에서 제대로 대응하고 있다면 서버에서 관리하고 있는 origin 이 아닐 경우 cross-protocol attack 이나 cross-site webSocket hijacking 으로 간주하고 접속이 중지 될 것이다.

이름에서도 드러나지만 이 공격은 CSRF 와 유사하다. 로그인 한 사용자의 request 를 변조하여 victim의 세션값을 갈취 할 수 있기 때문이다.


# 검증 방법

검증 방법 역시 굉장히 간단하다. origin 의 url 을 다른것으로 변조했는데, HTTP/1.1 101 Switching protocols 메시지를 받으면 해당 서버는 취약한 것이다.

<출처 - notsosecure.com>


** 추가 ** 
CSWSH 에 얽힌 슬픈 이야기 <https://hackerone.com/reports/274324>
어떤 버그바운터가 CSWSH 취약점을 잡았는데, 보안담당자가 "그래, handshake 까지는 그렇다 치고, 너 origin 바꾸는걸로 어떤 해킹을 할 수 있는데? 아니면 사용자 민감데이터를 다른 서버에 보낼 수 있어? 라고 압박을 했다. 어려보이는 버그 바운터는 바로 꼬리를 내렸다. 이유가 뭘까. 어렵다. 
보안 담당자가 증거로 내세운 자료는 https://github.com/meteor/meteor/issues/8317 이거다. 나중에 읽어봐야지

# 참조
  • https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html
  • https://www.notsosecure.com/how-cross-site-websocket-hijacking-could-lead-to-full-session-compromise/
  • http://www.hahwul.com/2016/08/coding-websocket-overview-protocolapi.html

Continue reading

2017. 10. 10.

Popular Posts

Recent Posts

Powered by Blogger.