본문 바로가기

3. 웹 애플리케이션 취약점 진단137

[비박스를 활용한 웹 취약점 진단] 2-2. SQL 인젝션 [POST/SEARCH] [난이도 하] POST 방식을 사용하기 때문에 위 URL 주소창에는 변수가 나타나지 않는 상황이다. 하지만 전문제와 똑같이 ' 를 넣으니 SQL 에러가 나왔다. 이번에는 버프슈트를 활용해서 공격해보자. intercept is on 활성화 상태에서 ' 를 넣어본다. 그랬더니 맨 밑에 title과 action 변수가 보이고 title 변수에 ' 의 URL인코딩 값인 %27이 나왔다. 즉, title 변수가 취약한 변수인것을 알 수 있다. 이제 title 변수에 ' or 1=1# 을 넣어보자. 그랬더니 참이 되어 모든 결과값들이 나왔다. 이제 union select만 해주면 된다. 칼럼 수는 전과 같을거 같아 바로 7자리로 해주었다. title=' union select ALL 1,2,3,4,5,6,7#&ac.. 2023. 12. 12.
[비박스를 활용한 웹 취약점 진단] 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.