XSS跨站脚本攻击(Cross Site Scripting),是将Java script代码插入web页面中,之后当用户浏览页面时, 会执行嵌套在web页面里面的Java script代码,从而达到攻击用户的目的。为了跟HTML里面的层叠样式表(CSS ,Cascading Style Sheets)作区分,所以叫作XSS.

反射型XSS的入侵过程:

攻击者将含有恶意JavaScript代码的URL发给用户==>用户打开URL==>web应用程序对攻击者的JavaScript做出回应==>用户浏览器向攻击者发送会话信息==>攻击者使用会话信息跟web服务器进行交互。

攻击步骤:

(1)用户正常登录web应用程序,登录之后获得一个cookie

(2)攻击者将含有攻击代码的URL发送给用户

(3)用户打开URL

(4)Web服务器执行该URL中用户的请求,同时执行该URL中所包含的的JavaScript代码

(5)攻击者可以使用的攻击代码的的可以将用户的cookie信息发送到cookie_save.php

(6)攻击者获得用户的cookie之后可以将这些信息进行登录.

危害:可以给对方浏览器构造一个恶意弹窗,可以在XSS里面加入恶意代码或者恶意链接等

打个比喻alert(“XSS”),如果换成inframescr=http://127.0.0.1.exe),如果http://127.0.0.1.exe是一个木马之后浏览这个页面的网站管理员跟用户都会感染木马

储存型XSS入侵过程:

web执行恶意代码构造URL==>用户访问这个网站==>在这浏览器中执行恶意JavaScript代码==>将cookie等重要参数返回到攻击者

危害:可以获取用户的信息,cookie等。

在本文XSS实验中,我们用弹窗作为现象。为什么我们在这里用弹窗呢,因为弹窗最明显

XSS反射型

我们打开DVWA中的XSS(Reflection)

之后我们在what’s your name?里面任意输入一个东西就会返回hello,下面我们以1为例。

我们也可以在这输入XSS脚本我们这拿alert(2)举例子

我们可以构造一个弹窗,我们用burp抓一下包丢到扫描器里面扫一下得到了以下结果。

下面,我们来看一下这个结果的报告

漏洞详情(Issue detail):

name请求参数的值作为标签之间的纯文本复制到HTML文档中.它的payload(arz4valert(1)pxrmb)中已经将name参数中提交.由于该参数在浏览器中未被过滤,所以可以将Java script注入到这个应用响应中

DVWA中级别的方法是利用嵌套进绕过ipt>alert(“1”)ipt>。在中级别xss会过滤

我们看一下中级的代码:<?php

header ("X-XSS-Protection: 0");

// Is there any input?

if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {

// Get input $name = str_replace( '

$name= str_replace( '

// Feedback for end user

echo "

Hello ${name}

";

}

?>

最高级别的方法是1。利用这里面的Javascript:alert(“XSS”)进行编码就可以绕过。

高级的代码:<?php

header ("X-XSS-Protection: 0");

// Is there any input?

if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {

// Get input

$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

// Feedback for end user

echo "

Hello ${name}

"; }

?>

储存型XSS

浏览器中有一个非常重要的安全机制叫做同源,同源的意思是只有同一个域里面的东西才能相互使用cookie。Cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie保存在浏览器中。

在储存型XSS中可以用herf属性进行绕过:

例如:link

我们首先打开一个叫做beef-XSS的工具。

BeEF是一个用于合法研究和测试目的的专业浏览器漏洞利用框架,它允许有经验的渗透测试人员或系统管理员对目标进行攻击测试,攻击成功以后会加载浏览器劫持会话。

我们在终端输入beef-xss之后,不光在终端上出现如上界面,还会出现浏览器页面。网页端beEF的账号密码都是beef。

这个之后我们双击127.0.0.1之后进入这个页面

之后我们点击Commands(命令)之后在这里面输入cookie

之后我们回车,并点击get cookie

之后点击Execute(执行)。之后就会弹回来cookie去掉输入中的引号

问题背景(Issue background):

当一个数据请求以不安全的方式返回到应用程序响应中的时候,我们就可以判断这是个发射去掉输入中的引号

型XSS.我们可以构建一个请求,如果由另外一个用户触发,我们写的恶意Java script代码就可以在对方浏览器运行.我们写的Java script代码可以进行各种操作,例如窃取cookie用受害人的身份登录,进行操作.

XSS的传播方式

1.可以通过邮件或者某些其他的通讯方式,给受害者发送一个含有恶意URL的链接

2.在一些热门网站的评论区进行恶意Javascript代码插入

3.可以创建一个网站之后让所有人都可见,以便于对用户发起XSS攻击(GET或者POST请求)进行跨域

XSS的影响:

XSS受影响程度取决于受攻击的人,其包含的数据和功能会不会影响同一个域内的其他人或者其他应用程序.如果是在某一个不重要的位置,例如某个不敏感而且没有身份验证或者控制访问的地方,XSS几乎没有什么用.如果是在关键的地方,例如cookie里面,这样就会威胁到其他的应用程序所以被判定为危险.同样如果XSS被用到钓鱼上面,那么XSS就会增加用户的信任,同时安全软件也不会警告.从而使用木马进行进一步攻击。

防御策略:

1.在输入的地方进行严格的验证,例如个人信息的长度,电子邮箱的正则表达式的匹配.也就是我们俗称的白名单.

2.把用户输入任何位置的信息进行HTML编码,将用户输入所有<>和””进行替换.在应用程序中限制用户使用HTML标签跟熟悉.

3.去掉,,

4.限制输入字符

5.去掉输入中的引号

6.对输入的URL进行解码,之后进行编码

7.将重要的cookie标记为http only

攻击姿势

Thisfile=Server.MapPath(“cookie.txt”)

Msg=Request(“msg”)

Setfs=server.CreateObject(“scripting.filesystemobject”)

Setthisfile=fs.OpenTextFile(thsfile,8True,0)

thisfile.WriteLine(“======cookie:”&msg&”=====byXSS”)

Thisfile.close

Setfs=nothing

%>

*本文属北京丁牛科技出品,如需转载请标明出处。

java http url xss,XSS简介相关推荐

  1. 【XSS漏洞-01】XSS漏洞简介、危害与分类及验证

    目录 1 XSS漏洞简介 2 XSS漏洞危害 3 XSS漏洞分类 3.1 反射型XSS 3.2 存储型XSS 3.3 DOM型XSS 3.3.1 节点树模型 3.3.2 DOM型XSS 4 漏洞验证 ...

  2. php伪协议xss,XSS漏洞学习

    XSS漏洞的原理 XSS漏洞是发生在目标网站中目标用户的浏览层面上,当用户浏览器渲染整个HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就会发生. XSS漏洞的危害 获取用户或者管理员的 ...

  3. java通过url读取远程数据并保持到本地

    前几天老姐突然告诉我,她在JD上买了本电子图书,然后买完发现,只能在线或者使用它自己的阅读器看,很不方便,让我给想想办法. 然后我就开始琢磨,最开始,我直接使用Acrobat Reader打开,发现只 ...

  4. java.net import_import java.net.URL;是什么类?

    展开全部 java.net.URL中定义了URL相关的操作,其主要利用的是openStream();方法来返回一个InputStream,然后可以使用InputStreamReader和Buffere ...

  5. Java开源——常见J2EE框架简介

    Java开源--常见J2EE框架简介 Spring Framework Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口 ...

  6. Hbuilder MUI里面使用java.net.URL发送网络请求,操作cookie

    1. 引入所需网络请求类: var URL = plus.android.importClass("java.net.URL");var URLConnection = plus. ...

  7. Java实现URL下载图片到本地

    功能:输入图片URL地址和图片名字,输出下载图片到指定目录.参考代码如下: import java.io.DataInputStream; import java.io.File; import ja ...

  8. JAVA 通过URL 获取页面内容

    package com.example;import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...

  9. JAVA 通过url下载图片保存到本地(亲测)

    //java 通过url下载图片保存到本地    public static void download(String urlString, int i) throws Exception {     ...

  10. java的网络工具netty简介

    2019独角兽企业重金招聘Python工程师标准>>> java的网络工具netty简介 Netty是一个NIO的客服端服务器框架,它可以简单.快速的搭建器一个协议包客服端服务器的应 ...

最新文章

  1. javaScript原生定义的函数
  2. vueJs的简单入门以及基础语法
  3. jquery将html转换word,HTML代码转word!亲测!可用!!!
  4. 已读服务器返回为空,钉钉考勤显示已读什么意思
  5. vue-cli 中stylus写样式莫名报错?
  6. web自动化框架抽取示例【Java+selenium】
  7. java resouce_Java 获取Resource目录下的文件解决办法
  8. 支持MySql的数据库自动分表工具DBShardTools发布
  9. StringBuilder使用方法
  10. pringboot+校园健身互助平台 毕业设计-附源码221540S
  11. php视频直播技术,PHP写在线视频直播技术详解
  12. 简单的http客户端
  13. 第六天、用户、组、权限、grep
  14. Android-隐藏app图标以及隐式启动
  15. 虚拟机ping通主机步骤_6在购买虚拟主机服务之前,请按照操作步骤进行操作
  16. wxid转扫一扫添加好友
  17. 疯狂的程序员-第六十七章
  18. Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句
  19. Python将图片写到音频频谱
  20. PC端微信dat图片怎么查看?这里有神器

热门文章

  1. java-net-php-python-springboot社区志愿者管理系统计算机毕业设计程序
  2. IPFS头号信仰者周欢:IPFS取代HTTP是未来
  3. 如何用ChatGPT, 每天自动批量产出100+条爆款短视频
  4. 树莓派4B之Pc端Qgc地面站与Pixhawk飞控连接
  5. Python生成随机密码【英文大小写+数字】
  6. 引领自主突围,睿赛德科技正式杀入车载OS赛道
  7. 梅赛德斯奔驰最新!目标检测的结构化知识蒸馏
  8. java在一个字符串前面插入另一个字符串的方法
  9. 钉钉老版本下载3.31_钉钉2016旧版本下载-钉钉2016历史版本v5.1.31 安卓手机版 - 极光下载站...
  10. C语言 const详解