XSS-lab通过教程🐶


XSS-lab通过教程??

Level-1

payload:http://192.168.33.222:40577/level1.php?name=

Level-2

  1. 我们随便输入123,查看闭合方式

我们可以构造闭合input标签,如何加入script语句

payload:">

Level-3

  1. 首先我们用第二关的payload去尝试,发现显示是一样的,但是没有执行我们的js代码

  1. 查看源码

我们发现使用了htmlspecialchars方法,它的作用是将特殊字符转换为html实体。那么什么是HTML实体呢?
说白了就是HTML为了防止特殊符号。例如:

特殊字符 转化后
& &
" "
< <
> >

这时候我们的思路就尽量要绕开使用新标签,那么浏览器还有一些事件可以执行js代码,如onfocus,onblur等,下面简单介绍一下关于鼠标事件的一些能引用js代码的函数:

属性 描述
onclick 当用户点击某个对象时调用的事件句柄
onmouseenter 当鼠标指针移动到元素上时触发
onmouseover 鼠标移到某元素之上

payload:' onclick ='javascript:alert(123)'//

注意:我们用的是点击事件,所以我们输入payload之后鼠标还得点击一下输入框才能触发代码

level-4

首先我们发现前端页面跟第2关一样,没什么区别,还是这样的

源码分析

# 我们可以看到首先接收参数,然后将<>都替换成了空
$str = $_GET["keyword"];
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);

所有说我们的payload里面不能有<>这两个符号,