热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:bWAPPHTMLInjectionStored(Blog)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了bWAPP----HTMLInjection-Stored(Blog)相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了bWAPP----HTML Injection - Stored (Blog)相关的知识,希望对你有一定的参考价值。




html Injection - Stored (Blog)

界面

 

 

 


1


2
3

HTML Injection - Stored (Blog)


4
5 php echo($_SERVER["SCRIPT_NAME"]);?>" method="POST">
6
7
8
9
10
11
12
13
14
15
16
17
22
23
29
30
36
37
43
44
45
46
47
48
49
50


18
19
20
21

24
25
26
27
28

31
32
33
34
35

38
39
40
41
42
echo $message;?>

51
52
53
54

55
56
57
58
59
60
61
62
63
64
65
66
// 上面是html,下面开始是PHP源码
67php
68
69// Selects all the records
70
71$entry_all = isset($_POST["entry_all"]) ? 1 : 0;
72
73if($entry_all == false)
74{
75
76$sql = "SELECT * FROM blog WHERE owner = \'" . $_SESSION["login"] . "\'";
77
78}
79
80else
81{
82
83$sql = "SELECT * FROM blog";
84
85}
86
87$recordset = $link->query($sql);
88
89if(!$recordset)
90{
91
92// die("Error: " . $link->connect_error . "

");

93
94 ?>
95
96
97
98
103
104
105
106php
107
108}
109
110while($row = $recordset->fetch_object())
111{
112
113if($_COOKIE["security_level"] == "1" or $_COOKIE["security_level"] == "2")
114 {
115
116 ?>
117
118
119
120
121
122
123
124
125
126php
127
128 }
129
130else
131 {
132
133 ?>
134
135
136
137
138
139
140
141
142
143php
144
145 }
146
147}
148
149$recordset->close();
150
151$link->close();
152
153 ?>
154
# Owner Date Entry
die("Error: " . $link->error);?>
echo $row->id; ?> echo $row->owner; ?> echo $row->date; ?> echo xss_check_3($row->entry); ?>
echo $row->id; ?> echo $row->owner; ?> echo $row->date; ?> echo $row->entry; ?>

155
156

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


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()的定义是

 

应该把xss的防御加在这里


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 \'&\'
6 // \'"\' (double quote) becomes \'"\' when ENT_NOQUOTES is not set
7 // "\'" (single quote) becomes \''\' (or ') only when ENT_QUOTES is set
8 // \'<\' (less than) becomes \'<\'
9 // \'>\' (greater than) becomes \'>\'
10
11 return htmlspecialchars($data, ENT_QUOTES, $encoding);
12
13 }

 



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



推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 1.点击查看隐藏当前按钮和这个内容,显示另一个内容能。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
author-avatar
孤独游侠1976_127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有