bWAPP----HTML Injection - Stored (Blog)

HTML Injection - Stored (Blog)

界面

  1 <div id="main">
  2
  3     <h1>HTML Injection - Stored (Blog)</h1>
  4
  5     <form action="<?php echo($_SERVER["SCRIPT_NAME"]);?>" method="POST">
  6
  7     <table>
  8
  9             <tr>
 10
 11                 <td colspan="6"><p><textarea name="entry" id="entry" cols="80" rows="3"></textarea></p></td>
 12
 13             </tr>
 14
 15             <tr>
 16
 17                 <td width="79" align="left">
 18
 19                     <button type="submit" name="blog" value="submit">Submit</button>
 20
 21                 </td>
 22
 23                 <td width="85" align="center">
 24
 25                     <label for="entry_add">Add:</label>
 26                     <input type="checkbox" id="entry_add" name="entry_add" value="" checked="on">
 27
 28                 </td>
 29
 30                 <td width="100" align="center">
 31
 32                     <label for="entry_all">Show all:</label>
 33                     <input type="checkbox" id="entry_all" name="entry_all" value="">
 34
 35                 </td>
 36
 37                 <td width="106" align="center">
 38
 39                     <label for="entry_delete">Delete:</label>
 40                     <input type="checkbox" id="entry_delete" name="entry_delete" value="">
 41
 42                 </td>
 43
 44                 <td width="7"></td>
 45
 46                 <td align="left"><?php echo $message;?></td>
 47
 48             </tr>
 49
 50     </table>
 51
 52     </form>
 53
 54     <br />
 55
 56     <table id="table_yellow">
 57
 58         <tr height="30" bgcolor="#ffb717" align="center">
 59
 60             <td width="20">#</td>
 61             <td width="100"><b>Owner</b></td>
 62             <td width="100"><b>Date</b></td>
 63             <td width="445"><b>Entry</b></td>
 64
 65         </tr>
 66    // 上面是html,下面开始是PHP源码
 67 <?php
 68
 69 // Selects all the records
 70
 71 $entry_all = isset($_POST["entry_all"]) ? 1 : 0;
 72
 73 if($entry_all == false)
 74 {
 75
 76     $sql = "SELECT * FROM blog WHERE owner = ‘" . $_SESSION["login"] . "‘";
 77
 78 }
 79
 80 else
 81 {
 82
 83     $sql = "SELECT * FROM blog";
 84
 85 }
 86
 87 $recordset = $link->query($sql);
 88
 89 if(!$recordset)
 90 {
 91
 92     // die("Error: " . $link->connect_error . "<br /><br />");
 93
 94 ?>
 95         <tr height="50">
 96
 97             <td colspan="4" width="665"><?php die("Error: " . $link->error);?></td>
 98             <!--
 99             <td></td>
100             <td></td>
101             <td></td>
102             -->
103
104         </tr>
105
106 <?php
107
108 }
109
110 while($row = $recordset->fetch_object())
111 {
112
113     if($_COOKIE["security_level"] == "1" or $_COOKIE["security_level"] == "2")
114     {
115
116 ?>
117         <tr height="40">
118
119             <td align="center"><?php echo $row->id; ?></td>
120             <td><?php echo $row->owner; ?></td>
121             <td><?php echo $row->date; ?></td>
122             <td><?php echo xss_check_3($row->entry); ?></td>
123
124         </tr>
125
126 <?php
127
128     }
129
130     else
131     {
132
133 ?>
134         <tr height="40">
135
136             <td align="center"><?php echo $row->id; ?></td>
137             <td><?php echo $row->owner; ?></td>
138             <td><?php echo $row->date; ?></td>
139             <td><?php echo $row->entry; ?></td>
140
141         </tr>
142
143 <?php
144
145     }
146
147 }
148
149 $recordset->close();
150
151 $link->close();
152
153 ?>
154     </table>
155
156 </div>

感觉防护代码这有点问题,我没看明白

 1 function htmli($data)
 2 {
 3
 4     include("connect_i.php");                  //链接数据库
 5
 6     switch($_COOKIE["security_level"])        //检测级别在cookie里
 7     {
 8
 9         case "0" :
10
11             $data = sqli_check_3($link, $data);
12             break;
13
14         case "1" :
15
16             $data = sqli_check_3($link, $data);
17             // $data = xss_check_4($data);
18             break;
19
20         case "2" :
21
22             $data = sqli_check_3($link, $data);
23             // $data = xss_check_3($data);
24             break;
25
26         default :
27
28             $data = sqli_check_3($link, $data);
29             break;
30
31     }

无论case是几,执行的都是

sqli_check_3()进行过滤

sqli_check_3()的定义是

1 function sqli_check_3($link, $data)
2 {
3
4     return mysqli_real_escape_string($link, $data);
5
6 }

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

  • \x00
  • \n
  • \r
  • \
  • "
  • \x1a

如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

1.low

级别同时不进行保护

2.medium

xss_check_4进行防xss保护

函数功能为

function xss_check_4($data)
{

 // addslashes - returns a string with backslashes before characters that need to be quoted in database queries etc.
 // These characters are single quote (‘), double quote ("), backslash (\) and NUL (the NULL byte).
 // Do NOT use this for XSS or HTML validations!!!

 return addslashes($data);

}

在预定义字符前加反斜杠

预定义字符是:

  • 单引号(‘)
  • 双引号(")
  • 反斜杠(\)
  • NULL

3.high

xss_check_3功能

 1 function xss_check_3($data, $encoding = "UTF-8")
 2 {
 3
 4     // htmlspecialchars - converts special characters to HTML entities
 5     // ‘&‘ (ampersand) becomes ‘&amp;‘
 6     // ‘"‘ (double quote) becomes ‘&quot;‘ when ENT_NOQUOTES is not set
 7     // "‘" (single quote) becomes ‘'‘ (or &apos;) only when ENT_QUOTES is set
 8     // ‘<‘ (less than) becomes ‘&lt;‘
 9     // ‘>‘ (greater than) becomes ‘&gt;‘
10
11     return htmlspecialchars($data, ENT_QUOTES, $encoding);
12
13 }

htmlspecialchars()功能,将部分字符转化为html字符

时间: 2024-10-12 03:54:47

bWAPP----HTML Injection - Stored (Blog)的相关文章

BwApp学习记录

下载&安装 bwapp可以单独下载,然后部署到apache+php+mysql的环境,也可以下载他的虚拟机版本bee-box,但是有好多漏洞是bee-box里边有,但单独安装bwapp没有的,比如破壳漏洞,心脏滴血漏洞等.我这里主要用bee-box进行介绍. 下载地址      [传送门] 开始搞事情 0x00 HTML Injection - Reflected (GET) [Low] <a href="http://www.baidu.com">OnClick&

聊聊错误注入技巧

前言 什么是"错误注入"?错误注入指的是将错误引入到我们的程序中.可能有人会很好奇,这么做有什么目的呢?答案很简单:程序的测试.因为在很多时候,当我们要进行边缘情况测试的时候,往往模拟测试的场景不是非常好造的(尤其是分布式类的程序更是如此),这个时候,我们需要有快捷的方式将错误注入到程序中,以便在我们需要发生错误时,进行错误的产生.本文笔者将结合HDFS现有的错误注入方法来介绍此部分内容. 错误注入技术的原理 错误注入技术的一个核心关键词是"拦截".正常情况下,应用

Metasploitable2使用指南

Metasploitable2使用指南 Metasploitable2 虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和演示常见漏洞攻击.版本2已经可以下载,并且比上一个版本包含更多可利用的安全漏洞.这个版本的虚拟系统兼容VMware,VirtualBox,和其他虚拟平台.默认只开启一个网络适配器并且开启NAT和Host-only,本镜像一定不要暴漏在一个易受攻击的网络中.(注:一个关于如何安装的视频教程已经可以访问在Virtual Box Host中安装Metasplo

shdsadjkwqjkjkwqwqwq

http://blog.zhulong.com/blog/detail5686154.html http://blog.zhulong.com/blog/detail5686160.html http://blog.zhulong.com/blog/detail5686166.html http://blog.zhulong.com/blog/detail5686170.html http://blog.zhulong.com/blog/detail5693565.html http://blo

鞍山的好奇我合计为顷刻间即可完全健康请我

http://blog.zhulong.com/blog/detail5686154.html http://blog.zhulong.com/blog/detail5686160.html http://blog.zhulong.com/blog/detail5686166.html http://blog.zhulong.com/blog/detail5686170.html http://blog.zhulong.com/blog/detail5693565.html http://blo

ashdwhqjhjwqejhwqjkjkwqjkwqwq

blog.zhulong.com/blog/detail5686154.html blog.zhulong.com/blog/detail5686160.html blog.zhulong.com/blog/detail5686166.html blog.zhulong.com/blog/detail5686170.html blog.zhulong.com/blog/detail5693565.html blog.zhulong.com/blog/detail5693574.html blog

sadhqhjwjhwqjkwqjkjkqwwq

http://blog.zhulong.com/blog/detail5686154.html http://blog.zhulong.com/blog/detail5686160.html http://blog.zhulong.com/blog/detail5686166.html http://blog.zhulong.com/blog/detail5686170.html http://blog.zhulong.com/blog/detail5693565.html http://blo

鞍山地区无计划为全家健康去我家可千万

blog.zhulong.com/blog/detail5686154.html blog.zhulong.com/blog/detail5686160.html blog.zhulong.com/blog/detail5686166.html blog.zhulong.com/blog/detail5686170.html blog.zhulong.com/blog/detail5693565.html blog.zhulong.com/blog/detail5693574.html blog

SQL注入之bWAPP之sqli_16.php

SQL Injection (Login Form/User),这个注入真的让我崩溃,说好的单引号报错后,相应的改SQL语句,然而并没用,然后求助身边的大牛,他说这个好像不一样,曾经好像是一道CTF的题,和一般的SQL注入不一样,但是一时想不起来怎么秀的了,然后终于想了起来,接着带着我一顿操作,终于明白是怎么回事了.这一切都要从代码讲起,先看代码:从第二行开始,$login参数接收传入的login,$password接收传入的password,sqli($password)这个是设置难度的,这里