4.3High**:**
源码:
high级别的代码使用了正则表达式直接把 <script 给过滤了,* 代表一个或多个任意字符,i 代表不区分大小写。所以,我们的
4.4Impossible
**5.**Xss Stored
持久化跨站脚本,持久性体现在XSS代码不是在某个参数(变量)中,而是写进数据库文件等可以永久保存数据的介质中。
存储型XSS通常发生在留言板等地方,可以在留言板位置进行留言,将恶意代码写进数据库中。
5.1****Low
trim(string,charlist) : 移除string字符两侧的预定义字符,预定义字符包括\t 、 \n 、\x0B 、\r以及空格,可选参数charlist支持添加额外需要删除的字符
stripslashes(string): 去除掉string字符的反斜杠\
mysqli_real_escape_string(string,connection) :函数会对字符串string中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义。
G L O B A L S : 引 用 全 局 作 用 域 中 可 用 的 全 部 变 量 。 GLOBALS :引用全局作用域中可用的全部变量。 GLOBALS:引用全局作用域中可用的全部变量。GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
没有任何过滤,直接使用弹窗代码。
<script>alert(/xss/)</script>
5.2Medium**:**
strip_tags:剥去字符串中的HTML、XML以及PHP的标签,但允许使用标签。
addslashes():返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
htmlspecialchars(string):把预定义的字符 “<” (小于)、 “>” (大于)、& 、‘’、“” 转换为 HTML 实体,防止浏览器将其作为HTML元素
*已经闯关闯不动了后面high和impossible就不试了*
**6.**文件上传
文件上传漏洞可以说是危害很大了,因为可以直接通过此漏洞getshell。漏洞原因简单点说就是由于开发人员或者网站运维人员的一些失误导致用户上传的文件可以被服务器当作脚本(可执行文件)解析执行。但是想要成功利用这个漏洞至少需要满足三个条件:
A.有效上传点
B.上传文件能够被解析执行
C.上传的文件能够被访问到
6.1Low
basename(path,suffix)函数返回路径中的文件名部分,如果可选参数suffix为空,则返回的文件名包含后缀名,反之不包含后缀名。
可以看到,服务器对上传文件的类型、内容没有做任何的检查、过滤,存在明显的文件上传漏洞,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。
如果上传成功,则会提示路径+succesfully uploaded! 如果上传失败,则会提示 Your image was not uploaded。
注意:
写这个代码时候关系杀毒软件,因为上传的是病毒攻击,可能刚一保存就被删除了!!!!
6.2Medium**:**
根据提示,可以看到只允许上传jpeg或者png的图片。意思就是要我们来绕过这个限制,我们先来想一想开发人员到底是从哪儿限制了我们上传php文件:
1.前端:利用js判断
2.后端:
a.判断文件名后缀
b.判断mime类型
c.判断文件内容
6.3High**:失败了**
7.实验总结
[外链图片转存中…(img-YQCX7OwQ-1623052045577)]
[外链图片转存中…(img-VZHw9PNT-1623052045578)]
7.实验总结
通过此次实验实验体验很多很多攻击方法,这个实验目前是我历时最久的实验之一,首先搭环境碰到了很多问题,自己一点一点去修改,锻炼了自己搭配环境的巨大体验,其次闯关太累了,看来很多教程,很多心得,最后有的还是失败了,有的地方做实验时候还跟网上教程答案不一样。感谢老师给我这次实验机会去体验web攻击,以后在开发时候一定一定会注意!!!