본문 바로가기

3. 웹 애플리케이션 취약점 진단/비박스를 활용한 웹 애플리케이션 취약점 진단62

[비박스를 활용한 웹 취약점 진단] 2-1(시나리오). SQL 인젝션 [GET/SEARCH] 멀웨어 업로드 시나리오 이번 페이지에서 나온 SQL 인젝션과 디렉터리 리스팅 취약점을 이용한 공격자의 시나리오를 보면 악성코드의 업로드가 가능하고 이를 통해 시스템의 장악이 가능해질 수 있다. bWAPP/images 디렉터리를 URL 경로에 입력하면 images 폴더 내부 구조를 볼 수 있었다. 이것이 디렉터리 리스팅 취약점인데 이를 이용해 SQL인젝션 취약점을 이용해서 원격으로 이 디렉터리 안에 악성코드를 생성할 수 있을 것이다. ​ https://github.com/naiduv/codecrawl/blob/master/code/bwapp-sqli.rb 위 github 경로로 이동해서 raw를 누른 후 해당 주소를 칼리리눅스에서 wget [해당주소] 를 입력하여 받아준다. sqli.rb 이름으로 변경하여 받아줄건데 이때 -O .. 2023. 12. 12.
[비박스를 활용한 웹 취약점 진단] 2-1. SQL 인젝션 [GET/SEARCH] SQL 인젝션이란? - 사용자가 입력한 값을 서버에서 검증하지 않아 악성 쿼리를 데이터베이스 쿼리의 일부분으로 인식해서 데이터베이스의 정보가 노출되거나 인증을 우회하는 취약점이다. 사용자가 데이터를 입력할 수 있는 곳 어디에서든 발생할 수 있으며, 이를 통해 공격자는 악성 SQL 쿼리를 변수에 입력해서 데이터베이스 정보 획득 및 시스템 내부를 파악한다. [난이도 하] 빈칸에 영화 제목을 넣고 search를 하면 데이터베이스를 조회해서 영화들을 보여주는것 같다. 이곳에 ' 를 넣어서 SQL 에러가 일어나는지 보자. 그랬더니 SQL syntax 에러가 나왔다. SQL 오류메시지가 출력되는것은 SQL 인젝션 취약점이 존재하는 것이다. ' 작은 따옴표는 DB에서 작은 따옴표로 문자 데이터를 구분하기 때문에 ' .. 2023. 12. 11.
[비박스를 활용한 웹 취약점 진단] 1-7. 인젝션 [SSI 인젝션] SSI 인젝션이란? - Server-Side Includes(SSI) 는 HTML 페이지 전체 코드를 수정하지 않고 공통 모듈 파일로 관리하면서 동적인 내용을 추가하기 위하여 만들어진 기능이다. 홈페이지 로고를 수정하거나 방문자 수 확인할때 주로 쓰는 기능이다. SSI를 쓰는 웹페이지는 SSI 지시어를 처리하기 위해 .shtml 확장자 파일을 생성한다. SSI 형식 : SSI는 마치 HTML 주석과 비슷한 형태를 가진다. 그렇기에 SSI 기능을 사용하지 않는 웹페이지에서는 위 구문은 주석으로 처리된다. [난이도 하] 우선 firstname과 lastname에 hello 와 world를 넣어보았다. 그랬더니 저렇게 나오면서 아이피 주소를 출력해 준다. 여기서 URL창을 잘 보면 shtml 페이지를 호출한 .. 2023. 12. 11.
[비박스를 활용한 웹 취약점 진단] 1-6. 인젝션 [PHP 코드 인젝션] [난이도 하] 이번 문제는 GET 메서드로 위의 message 값을 변경해서 아래 강조 표시된 message 를 누르면 아래에 해당 값을 띄워준다. php에서는 exec() 이나 eval() 함수를 사용한 경우 ; 세미콜론을 사용하여 다른 함수를 실행할 수 있는 취약점이 존재한다. 취약점이 있는지 알기 위해서 세미콜론과 system 함수를 사용해보자. (system 함수는 문자열 형태 명령어를 인자값으로 받아서 해당 명령어를 실행하는 함수다) ?message=HelloWorld;system("whoami") 인자값을 이런 방식으로 넣어보았다. whoami는 시스템에 로그인한 사용자 이름을 출력한다. system 안에는 문자열 형태 명령어라고 했으니 "" 안에 명령어를 넣어준 것이다. 그랬더니 messag.. 2023. 12. 11.