본문 바로가기

분류 전체보기257

[비박스를 활용한 웹 취약점 진단] 2-5.SQL 인젝션 [AJAX/JSON/jQuery] AJAX 란? - Asynchronous Javascript and XML 으로 HTML, 자바스크립트, JSON을 혼합해서 쓰는 기술을 말한다. JSON 이란? - Javascript Object Notation으로 웹서버와 데이터를 주고받을때 데이터를 표현하는 방법을 뜻하는데, 자바스크립트 형식으로 객체를 표현한다. JQuery 란? - 자바스크립트 라이브러리중 하나로 클라이언트에서 스크립트 언어를 쓸때 이를 단순화하며, AJAX 기능도 제공한다. ​ [난이도 하] 이번 페이지는 AJAX 기술을 활용하여 검색 버튼을 누르지 않아도 글자만 입력하면 알아서 검색 결과를 보여준다. 이럴 때에는 개발자 도구를 활용하여 검색에 사용하는 변수가 무엇인지 알아볼 수 있다. 보아하니 title 변수를 사용하는것 같.. 2023. 12. 12.
[비박스를 활용한 웹 취약점 진단] 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.