Blame view

vendor/ezyang/htmlpurifier/smoketests/variableWidthAttack.php 1.5 KB
abf1649b   andryeyev   Чистая установка ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  <?php
  
  require_once 'common.php';
  
  echo '<?xml version="1.0" encoding="UTF-8" ?>';
  ?><!DOCTYPE html
       PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html>
  <head>
      <title>HTML Purifier Variable Width Attack Smoketest</title>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  </head>
  <body>
  <h1>HTML Purifier Variable Width Attack Smoketest</h1>
  <p>For more information, see
  <a href="http://applesoup.googlepages.com/bypass_filter.txt">Cheng Peng Su's
  original advisory.</a>  This particular exploit code appears only to work
  in Internet Explorer, if it works at all.</p>
  <h2>Test</h2>
  <?php
  
  $purifier = new HTMLPurifier();
  
  ?>
  <table>
  <thead><tr><th>ASCII</th><th width="30%">Raw</th><th>Output</th><th>Render</th></tr></thead>
  <tbody>
  <?php
  
  for ($i = 0; $i < 256; $i++) {
      $c = chr($i);
      $html = '<img src="" alt="X' . $c . '"';
      $html .= '>A"'; // in our out the attribute? ;-)
      $html .= "onerror=alert('$i')>O";
      $pure_html = $purifier->purify($html);
  ?>
  <tr>
      <td><?php echo $i; ?></td>
      <td style="font-size:8pt;"><?php echo escapeHTML($html); ?></td>
      <td style="font-size:8pt;"><?php echo escapeHTML($pure_html); ?></td>
      <td><?php echo $pure_html; ?></td>
  </tr>
  <?php } ?>
  </tbody>
  </table>
  
  <h2>Analysis</h2>
  
  <p>By making sure that UTF-8 is well formed and non-SGML codepoints are
  removed, as well as escaping quotes outside of tags, this is a non-threat.</p>
  
  </body>
  </html>
  <?php
  
  // vim: et sw=4 sts=4