해당 취약점은 os의 command를 이용하여 공격하는 방식이다. 취약점 화면을 확인한다.

 

 

dns lookup을 실행해주는것 같다. lookup 버튼을 눌러서 확인해 본다.

 

실행 결과 www.nsa.gov의 dns 정보가 출력된다. lookup 버튼을 누르면 "dnslookup 텍스트박스" 이런식의 명령어가 실행되는 것 같다. 그래서 www.nsa.gov 뒤에 ; ls -al 명령어를 넣어 우회를 시도했다.

 

 

시도한 결과 위 그림과 같이 dnslookup 명령어와 함께 ls -al 명령어도 같이 실행되었다.

'Web Hacking > bWAPP' 카테고리의 다른 글

[LOW] SSI(Server Side Includes) Injection  (0) 2017.12.19
[LOW] PHP Code Injection  (0) 2017.12.19
[LOW] HTML Injection - Stored (Blog)  (0) 2017.12.12
[LOW] HTML Injection - Reflected (URL)  (4) 2017.12.12
[LOW] HTML Injection - Reflected(POST)  (6) 2017.12.12
블로그 이미지

꼴통보안인

,

해당 취약점은 위 PHP 코드 인젝션과 같이 SSI 구문을 넣어서 취약점을 도출해 내는 방식인것 같다. SSI(Server Side Includes)는 서버가 HTML 파일을 사용자에게 보내기 직전에 포함할 수 있는 변수값을 치환하는 것이다. 우선 취약점을 확인한다.

 

 

이름을 입력하면 자신의 아이피를 보여주는 것 같다. 직접 입력하여 확인해봤다.

 

 

실제로 입력한 이름과 자신의 IP를 알려준다. 여기에 first name에 <!--#exec cmd="ls -al" -->를 입력하고 last name에는 1을 입력하여 출력되는 화면을 확인했다.

 

 

입력 결과 ls -al 명령어가 ssi 구문에 의해 실행되었다.

'Web Hacking > bWAPP' 카테고리의 다른 글

[LOW] OS Command Injection  (0) 2017.12.19
[LOW] PHP Code Injection  (0) 2017.12.19
[LOW] HTML Injection - Stored (Blog)  (0) 2017.12.12
[LOW] HTML Injection - Reflected (URL)  (4) 2017.12.12
[LOW] HTML Injection - Reflected(POST)  (6) 2017.12.12
블로그 이미지

꼴통보안인

,

해당 취약점은 php코드를 이용하여 서버의 정보를 알아내는 취약점이다. 우선 어떤식의 문제인지 확인한다.

 

위와 같이 해당 페이지는 테스트페이지일 뿐이라는 문구와 함께 message 글자를 누를 수 있게 되어있다. 한번 눌러봤다.

 

 

위 그림과 같이 주소창에는 ?message=test라는 파라미터 값이 나왔고 화면에는 test라는 글이 나왔다. message라는 파라미터 값에 test를 입력하면 test가 출력되는 방식인 듯 했다. 그래서 message파라미터의 값을 test가 아닌 php 함수를 이용하여 system("ls -al")로 바꿔서 실행했다.

 

 

system 함수 사용 결과 위와 같이 system 함수 내에 작성한 ls -al 명령어가 동작하여 출력되었다.

블로그 이미지

꼴통보안인

,

해당 취약점은 블로그에 글을 저장할때 HTML Injection 공격을 하는 취약점이다. 취약점 화면을 보면 아래와 같이 블로그에 글을 올리도록 되어있다.

 

 

우선 Hi라는 글을 써서 저장했다.

 

 

위와 같이 entry에 Hi라는 글자가 작성되었다. 이전 HTML Injection에서 작성했던 <h1>Success</h1>을 입력하여 저장했다.

 

 

이전 문제들과 같이 Success 이미지가 저장되었다.

블로그 이미지

꼴통보안인

,

해당 취약점은 URL을 이용한 HTML Injection이다. 취약점 화면을 보면 아래 그림과 같이 자신의 URL이 나와있다.

 

 

사용하는 메소드가 GET 메소드인지 POST 메소드인지 확인하기 위해 패킷을 잡아봤다.

 

 

사용하는 메소드가 GET 메소드이다. 그러므로 URL 파라미터 값을 통해서 값을 전달한다. GET 옆에 있는 주소값(/bWAPP/htmli_current_url.php)에 ?<h1>Success</h1>을 작성하여 패킷을 전송했다. 전송하니 화면에 Success 이미지가 출력됬다.

 

 

 

'Web Hacking > bWAPP' 카테고리의 다른 글

[LOW] PHP Code Injection  (0) 2017.12.19
[LOW] HTML Injection - Stored (Blog)  (0) 2017.12.12
[LOW] HTML Injection - Reflected(POST)  (6) 2017.12.12
[LOW] XML/XPath Injection (Login Form)  (0) 2017.12.05
[LOW] SQL Injection - Blind (WS/SOAP)  (0) 2017.12.05
블로그 이미지

꼴통보안인

,

해당 취약점은 HTML의 POST 메소드를 이용한 Injection 취약점이다. 취약점으로 들어가면 아래와 같이 성과 이름을 쓰는 페이지가 나온다.

 

 

이름(first name)에 kildong, 성(last name)에 hong을 입력후 Go 버튼을 누르니 아래와 같이 환영한다는 문구가 나온다.

 

 

GET과 POST의 차이점은 GET은 URL에 넘어가는 파라미터 값이 보이지만 POST는 보이지 않는다는 점이다. 우선 GET과 같은 방식으로 이름에는 <h1>Success</h1>을, 성에는 <img src="http://비박스 IP/bWAPP/images/bee_1.png">를 입력한다. 입력하면 GET의 결과와 같은 결과가 나온다.

 

 

패킷을 잡아서 POST로 가는지 GET으로 가는지 확인해본다.

 

 

 

POST로 전송되는 것을 확인했다.

블로그 이미지

꼴통보안인

,

해당 취약점은 XML Injection을 이용하여 로그인하는 취약점이다. 우선 문제를 살펴본다.

 

 

superhero로 로그인하면 되는 문제이다. 우선 '(싱글쿼터)를 입력하여 에러를 확인한다.

 

 

xml 관련 에러가 나온다. xml을 이용해야 하는게 맞고, 로그인이기 때문에 and 연산으로 id와 비밀번호를 호출한다고 추측할 수 있다. 이제 참이되는 'or 1=1 or ' 구문을 삽입했다.

 

 

구문 삽입 결과 neo로 로그인 되었다.

블로그 이미지

꼴통보안인

,

해당 취약점은 SOAP를 사용하는 웹 서비스의 SQL Injection 취약점이다. 접속하여 Go 버튼을 누르면 We have 100 movie tickets available in our stock.이라는 메시지가 나온다. 100장의 티켓을 가지고 있고 예매가 가능하다는 얘기인 것 같다.

 

 

url에 &action 앞에 ' or 1=1#을 입력해본다.

 

 

입력 결과 100이라는 숫자가 사라졌다. 또한 urlencoding으로 값이 전송되는 것을 url을 통해 확인했다. 그리고 error가 생긴듯 하다. 이번에는 ' or '1'='1을 입력했다.

 

 

 

입력 결과 100이 다시 출력되었다. ' or length(database())=5 and '1'='1을 입력하여 DB명의 길이가 5글자인 것을 확인했다.

 

 

' or length(database())=5 and '1'='1 구문을 변경하여 DB명, 테이블명, 컬럼명, 컬럼 내의 데이터 값을 확인할 수 있다.

블로그 이미지

꼴통보안인

,

SOAP(Simple Object Access Protocol)XML 언어를 이용하여 분산환경에서의 정보 교환을 해주는 프로토콜이다. HTTP, HTTPS, SMTP를 통하여 XML 기반의 메시지가 네트워크에서 교환된다. 언어/OS와 독립적이고, 물리적으로 인접하지 않은 서버에 정보를 요청하고 요청에 대한 응답 값을 확인할 수 있다.

 

SOAP 메시지 구조

  - Envelope : 모든 SOAP 메시지의 루트 요소이며 header, body를 포함.

 

  - header : 필수적이지 않은 항목으로 SOAP 노드로만 처리될 애플리케이션 관련 정보를 전달하는데 사용.

 

  - body : 필수적인 항목으로 메시지의 최종 수신인을 대상으로 하는 정보를 포함.

 

  - falut : SOAP body의 하위 요소이며 오류 보고에 사용.

 

장점

  - 프록시와 방화벽에 구애받지 않고 쉽게 통신 가능.

  - 플랫폼 및 프로그래밍 언어에 독립적.

  - 간단하고 확장 가능.

  - 멀티파트 MIME 구조를 사용하여 첨부를 통합하는 SOAP XML 메시지를 지원.

  - 분산 컴퓨팅 환경을 다루기 위해 설계.

  - 에러 처리에 대한 내용이 기본적으로 내장.

 

단점

  - 다른 기술과 비교해서 상대적으로 느리지만 네트워크 속도의 발전과 성능 최적화 기술의 발전으로 많은 부분 해결됨.

  - REST 연동에 비해 복잡하고 무거움.

  - 개발이 어렵고, 툴이 필요함.

 

'Web Hacking > 이론적인 내용' 카테고리의 다른 글

Command Injection이란?  (0) 2017.09.29
파일 업로드 취약점이란?  (0) 2017.09.22
파일 다운로드 취약점이란?  (0) 2017.09.15
CSRF(Cross Site Request Forgery)란?  (0) 2017.09.08
XSS란?  (2) 2017.09.01
블로그 이미지

꼴통보안인

,

해당 취약점은 앞서 했던 SQL Injection - Blind - Boolean-Based와 흡사하다. 차이점은 기존 Boolean-Based에 사용했던 쿼리문에 sleep함수를 추가하여 페이지의 로딩 중인것을 보고 확인한다. 앞서 했던 취약점과 쿼리문은 거의 동일 하기때문에 따로 설명하진 않겠다. ' or 1=1 and sleep(5)#을 대입하여 확인한다.

 

 

위 그림과 같이 작업 진행중을 의미하는 아이콘이 계속 돌고있다. 저게 돌면 쿼리문이 참이고, 안돌면 거짓이다. 앞서 boolean-based의 쿼리문에 and sleep(5)를 넣어서 확인하면 DB의 정보를 확인할 수 있다.

블로그 이미지

꼴통보안인

,