在这里我记录一下我在xss学习中的收获,本人小白一个如果有什么错误的地方请大佬指教,有什么疑问我们也可以共同讨论。
在这里使用的是pikachu靶场。
什么是xss漏洞
跨站脚本攻击(Cross-Site Scripting,简称 XSS)是一种常见的网络安全漏洞,发生在应用程序允许未经过滤的用户输入直接插入到网页中并被其他用户浏览时。攻击者可以利用 XSS 漏洞在受害者的浏览器中执行恶意脚本,从而窃取敏感信息、劫持用户会话、进行钓鱼攻击等。
xss之反射型
首先打开我们的pikachu靶场的xss
1. xss反射型(get)
可以看到我们的靶场上只有一条输入框
输入我们的恶意代码
<script>alert("caker")</script>
在这个语句中alert是一个可以让浏览器弹窗的函数
caker随便输入都行,是执行内容
诶,可以发现我们的恶意代码并不能完全写入。有两种办法。
1.通过搜索框进行输入
可以发现进行了弹窗,代表我们的恶意代码执行成功。
2.通过更改网页代码(一般实战用不了)
找到maxlendth函数修改上限。
可以输入全部内容得到弹窗
2.xss反射型(post)
点一下提示会告诉你用户名admin密码123456登录进去即可。
没有绕过,什么限制都没有,直接输入我们的恶意代码即可
xss之存储型
存储型的xss会一直留在页面,无论在什么地方登录都会被攻击。
语句依旧不变
<script>alert("caker")</script>
我们可以换一个浏览器进行登录 ,一样可以
可以看到我们还没有加载好弹窗已经出来了。
xss之DOM型
在这种类型之中我们就要会看源代码了。
我们直接输入语句
<script>alert("caker")</script>
不会弹窗
可以看到在源代码中给出了我们正确的答案,我们来看看执行代码的是这一段
<a href='"+str+"'>
+ 运算符的作用是将静态的 HTML 片段和动态的变量值结合起来,形成一个完整的 HTML 标签或其他字符串形式的输出
正如注释所言我们需要将前面的闭合掉不然得不到可执行恶意代码。
我们这里需要一点点的js知识。
#' onclick="alert(/xss/)">
我们插入一个闭合代码
那么可执行语句会变成什么样子呢
<a href='#' onclick="alert(/xss/)">
我们就会得到弹窗xss
xss之盲打
一样的我们先留下恶意代码
但是会发现没有直接弹窗的出现,点一下提示发现需要我们登录。
登录发现恶意代码执行了。
在这里没有什么难点。
xss之过滤
在这里我们需要进行一个测试,我们需要尝试他过滤了什么字符和如何绕过过滤,如果单独输入"<>‘on/’()则什么都没有被过滤,如果输入了"<>‘1’() script aaaa,则<>‘1’() script被删掉了,只输出了aaaa在页面上。
这说明过滤语句超可能是<.*script
那么我们只要换一个标签即可。
<a herf="#" onclick="alert(/xss/)">
得到回显。
xss之htmlspecialchars
在这个之中我推荐一篇文章讲的非常好htmlspecialchars过滤
#' onclick='alert(1)'
会得到弹窗看源代码
可以看到单引号没有被转义
#' onclick="alert(1)"
不会弹窗
可以发现我们的双引号被转义所以不能执行代码。
也是需要我们进行一个测试。
xss之href输出
javascript:alert(1)
这个非常的简单只是换一个标签
xss之js输出
先看一下源代码
可以很清晰的的看到我们只要讲前面闭合,将后面注释即可。
';alert(1);//
总结一下
在xss的学习当中有疑问的话还是要多去查询一些信息。如果相进行一下实战的话我们的具体恶意代码需要大家自己去寻找。如果我放出来的话是违法规定的。
需要多加练习来提升能力。