본문 바로가기

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

[비박스를 활용한 웹 취약점 진단] 2-4.(시나리오) SQL 인젝션 [SQLMAP] [Sqlmap 공격 시나리오] 이번엔 Sqlmap을 이용해 beebox의 취약한 GET/Search 페이지를 공격하고 이를 통해 ​데이터베이스 관리자 계정까지 얻어보자. 공격자의 입장에서 생각하는 시나리오는 대응방안을 수립하는데에 있어 매우 중요하다. sqlmap -u "http://192.168.56.102/bWAPP/sqli_1.php?title=" --cookie "PHPSESSID=6c5d5055066976b75b1ee7f03efeba16; security_level=0" --dbs 위 명령어를 입력하였다. GET 방식이고 title 변수가 취약하기 때문에 -u 옵션에 ?title= 주소를 넣어주었다. cookie 값은 버프슈트의 쿠키값을 그대로 넣었으며 --dbs 옵션을 통해 데이터베이스 정보를.. 2023. 12. 12.
[비박스를 활용한 웹 취약점 진단] 2-4. SQL 인젝션 [POST/SELECT] [난이도 하] 같은 문제인데 POST 유형이다. 버프슈트를 사용해서 인터셉트하면 아래에 movie와 action 변수값이 노출된다. 이를 변경하자 0 order by 8 을 넣어서 칼럼 수가 8자리인걸 확인했다. GET 문제와 똑같으므로 바로 칼럼명을 찾아보자. 0 union select null,id,password,email,secret,null,null from users 구문으로 바로 id와 비번 등을 찾아내었다. 물론 이 과정 전에 테이블명을 찾고 칼럼명을 찾고 해야하지만 이미 했던 과정이므로 넘겼다. 이번에는 다르게 이 과정을 수동으로 해보았으니 칼리리눅스에서 sqlmap을 활용해 자동으로 시도해보자. 칼리리눅스 터미널에서 sqlmap-h 를 치면 sqlmap에 대한 도움말이 나온다. 여기서 .. 2023. 12. 12.
[비박스를 활용한 웹 취약점 진단] 2-3. SQL 인젝션 [GET/SELECT] [난이도 하] 이번 페이지는 드롭다운 메뉴를 선택하여 선택한 영화의 정보를 보여준다. GET 메소드기에 URL창에 변수가 노출되는것을 볼 수 있다. 드롭다운 메뉴를 변경해보면 movie 변수값이 변경되는 것을 볼 수 있고 숫자형을 입력 값으로 받는 듯 하다. movie 변수에 ' 작은 따옴표 값을 주었더니 SQL 에러가 나왔다. 이제 union select 구문을 바로 써보면 될 것 같다. 그 전에 order by 구문을 이용해 칼럼 개수를 알아보자. 0 order by 8 에서 unknown column이 떴다. 즉, 칼럼 개수는 7개라는 뜻이다. 이제 union select로 넘어가자 0 union select 1,2,3,4,5,6,7 을 movie 값에 넣어주었다. 써보니 주석문자를 사용하지 않아도.. 2023. 12. 12.
[비박스를 활용한 웹 취약점 진단] 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.