728x90
반응형
728x90
반응형
Stored Cross Site Scripting서버에 저장된 악성 스크립트가 여러 사용자에게 실행되는 공격 DVWA Stored XSS 페이지는 위 사진과 같이 Name과 Message를 포함하여 Guestbook을 올리는 기능이 구현되어 있다. Message에 XSS 기본 스크립트 구문을 넣어보았다.ㅤGuestbook 목록을 보니 를 넣어주었고, 쿠키가 alert창에 출력된 걸 볼 수 있었다.ㅤ또한 img 태그를 사용하여 를 통해 쿠키 출력도 가능했다.
Reflected Cross Site Scripting사용자가 입력한 값이 즉시 반영되어 악성 스크립트를 실행하는 공격 DVWA Reflected XSS 페이지는 위 사진과 같이 이름을 입력하여 제출하는 기능이 구현되어 있다. 1을 제출해보니 Hello라는 문자열과 함께 출력되는 걸 볼 수 있었다. ', '', $_GET[ 'name' ] ); // Feedback for end user $html .= "Hello {$name}";}?>DVWA 깃허브 코드를 보니, 사용자가 입력한 name을 GET 요청으로 받고 있다. 그리고 XSS 공격 방지를 위해 태그가 존재하면 빈 문자열로 치환하고 있다.하지만 단순히 문자열만을 빈 문자열로 치환하고 있기 때문에, >와 같이 중간에 를 넣어 치환 ..
DOM Based Cross Site Scripting클라이언트 측 자바스크립트를 조작하여 악성 스크립트를 실행하는 공격 DVWA DOM XSS 페이지는 위 사진과 같이 언어를 선택할 수 있는 기능이 구현되어 있다.ㅤ 언어를 선택하면 URL 파라미터로 값이 들어가는 걸 볼 수 있었다. DVWA 깃허브 코드를 보니, 가 포함되어있는지 stripos() 함수를 통해 확인하고, 포함되어있으면 ?default=English 가 실행되었다.하지만 script 태그 말고도 XSS 공격이 가능하니 이를 우회해보려고 한다. 태그를 사용하여 이미지 소스가 존재하지 않을때 에러를 발생시키면서 alert창을 띄우도록 해보았다.ㅤ 를 입력했지만 alert창이 띄워지진 않았다. 하지만 default=English가 적용되진 ..
Weak Session IDs예측 가능한 세션 ID를 사용해 사용자 세션을 탈취하는 공격 DVWA Weak Session IDs 페이지는 위 사진과 같이 Generate 버튼 클릭을 통해 세션값을 생성하는 것으로 보인다.ㅤ 개발자 도구에서 dvwaSession의 값을 보니, 랜덤하게 생성되진 않는 것으로 보였다.일정하진 않지만 새로고침 할 때마다 크지 않은 값만큼 증가하였다. DVWA 깃허브 코드를 보니, 시간(초)에 따라 쿠키 값이 변하는 걸로 보인다.이렇게 추측 가능한 세션 값을 사용하면 다른 사용자의 권한을 획득할 수 있게 된다.
Blind SQL Injection결과가 직접 노출되지 않아도 데이터베이스의 참/거짓 응답을 통해 정보를 추출하는 공격 DVWA Blind SQL Injection 페이지는 SQL Injection과 같은 기능을 하고 있다.ㅤ 패킷을 캡처해서 봐도 POST 요청으로 id 값과 Submit 값을 받는 것 또한 동일했다.ㅤ하지만 Blind SQL Injection은 쿼리의 결과가 출력되지 않고 존재 유무에 대한 결과만 반환되고 있는 걸 알 수 있었다. 0); // The '@' character suppresses errors } catch(Exception $e) { $exists = false; } ..
SQL Injection입력값을 통해 SQL 쿼리를 조작하여 데이터베이스 정보를 탈취하거나 수정하는 공격 DVWA SQL Injection 페이지는 위 사진과 같이 User ID(1~5)를 제출하는 기능이 구현되어 있었다.ㅤ Burp Suite를 통해 패킷을 캡처해보니, POST 요청으로 id값과 Submit 값이 서버로 보내지는 걸 알 수 있었다. ' . mysqli_error($GLOBALS["___mysqli_ston"]) . '' ); // Get results while( $row = mysqli_fetch_assoc( $result ) ) { // Display values $first = $row["..