xss实验并对注入点、注入语句及危害知识总结

其它文章
xss-labs前五关 详细

<1>xss的概念

xss的英文名字是cross site scripting。俗称跨站脚本,是一种注入攻击,指攻击者在被攻击的网页上利用编写时的漏洞注入恶意脚本代码,受害者访问该页面时,恶意代码会在用户的浏览器上执行的攻击方式叫做跨域脚本攻击。下面先用一个实验对xss的攻击流程做一个介绍。

<2>xss简单的实验

实验目的

模拟钓鱼邮件调取用户cookie的过程,通过这个小实验可以理解反射型xss漏洞的危害和流程。但是值得一提的是在本次实验当中并不会调取cookie想要。

基本思路

将bwapp靶场当作正常网站,根据靶场xss模块设计代码,然后注入js代码到一个指向bwapp靶场xss模块的url,实现点击一次就执行javascript代码。执行路径为 在url注入脚本–>成功点击–>成功执行javascript代码–>实现xss注入

实验条件

靶场:bwapp靶场。值得一提的是实验的靶场是搭建在内网环境中的,读者想要模拟的话可以在集成环境中搭建,效果差不多。
源码:这个源码就是编写一个html文件用户点击之后在浏览器上打开之后直接跳转然后执行内置的javascript脚本。

钓鱼文件的源码

这里的钓鱼文件的文件后缀是html为的就是接受文件的人在点击之后跳转到有xss漏洞的网站中执行javascript脚本。要注意的是其中跳转源码的url的ip要使用自己靶场所在的ip,比如你在自己的本地机上面搭建的靶场,那么你的url中的ip要用的就是127.0.0.1

<!DOCTYPE html>
<html lang="en">
<head>
	<title>这里只有爱</title>
	<meta http-equiv="refresh" content="0;http://192.168.8.52/bwapp/xss_get.php?firstname=forming_is_handsome&lastname=<script>alert(/you are handsome my little bitch/)</script>&form=submit" />
    	<meta charset="utf-8" />
	<meta name="description" content="overview &amp; stats" />
</head>
    <body>
	<a href="http://192.168.8.52/bwapp/xss_get.php?firstname=forming_is_handsome&lastname=<script>alert(/you are handsome my little bitch/)</script>&form=submit">点击这里可以看美女直播></a>
	<script laguage="javascript" type="text/javascript">
		window.location.href="http://192.168.8.52/bwapp/xss_get.phpfirstname=forming_is_handsome&lastname=<script>alert(/you are handsome my little bitch/)</script>&form=submit";
	</script>
    </body>
</html>
实验步骤

在实验中有人可能会觉得让被钓的人弹个窗

(1)写一个源码如刚刚所给的html文件

在这里插入图片描述

(2)再把文件赋给一个邮件,发送给自己的另一个邮箱在这里插入图片描述
(3)点击钓鱼邮件并打开附加文件

在这里插入图片描述最后点击之后会是如下形式。

<3>xss的类型

(1)反射型

这种类型的xss的特点是将js脚本引入url中诱导别人点击来实现js脚本的注入。它的响应流程是 浏览器–>服务端–>浏览器。刚才所做的实验其实就是反射型的xss漏洞

(2)存储型

这一类型的脚本的注入方式,主要出现在有评论功能的网站上,这种类型可以实现注入一次,多个用户都要遭殃。响应流程是 浏览器–>服务器–>数据库–>浏览器。

(3)dom型

这种类型要应用网页中自带的js脚本,来实现注入,好处是不容易防护,因为不会经过服务端。响应流程是 浏览器–>脚本–>浏览器。

<4>存储型、dom型的举例

(1)就以pikachu靶场中的存储型xss举例

  • 1.首先打开pikachu靶场的存储xss
    在这里插入图片描述
  • 2.输入<script>alert(/forming/)</script>
    在这里插入图片描述
  • 3.注入之后多打开几个窗口测试一下就会发现无论打开几个窗口都会弹窗
    再打开一个如下图
    在这里插入图片描述再再打开一个如下图
    在这里插入图片描述可见存储型的xss就是将javascript脚本注入到数据库中,只要有人求取网页这个javascript脚本就会转发到客户端上倒是后就可以执行

(2)dom型

  • 1.在网页指定的地方输入forming再打开开发者工具在查看器查找forming。如下图
    在这里插入图片描述
  • 2.根据查看其中的代码闭合语句,将事件包括到注入的语句中最后注入javascript脚本
    输入的语句是:
    ’ οnmοuseοver='alert(/forming_is_handsome/)
    在这里插入图片描述
    3.可见dom型的xss就是根据内置的javascript脚本将xss注入到源码中

<5>xss常见注入点

所谓注入点就是,xss可以注入脚本代码的地方

  • 1.<input>
  • 2.<script>
  • 3.<embed>等
    这些标签都有一个特点就是都有src属性,如果网页可以发送form表单且其中的参数被用在了这些标签的属性中,那么我们注意闭合之后,加入onerror、onmouseover、onclick、onfocus等焦点之后触发脚本内容。
  • 4.<h1>、<h2>、<h3>、<h4>、<h5>、<h6>
  • 5.<div>等
    这些标签的特点是只有对网页显示的编辑功能,或者说有分割网页源码文本的功能,如果网页传回去的参数有被用于这些标签的参数,我们可以将完整的dom节点传进去,因为一般这些标签都有包含的功能。

<6>xss绕过

  • 1.编码绕过
    网站可能用来htmlspecialchar()函数,将输入中的一些字符转变成了实体字符,那么我们可以用试一试编码绕过,比如使用转义序列的方式,转义序列是HTML、XML等SGML语言中的概念,也不能说它是编码,更像是实体字符的转换,有两种形式
    形式一:”&#“之后跟十进制数
    形式二:”&#“之后跟十六进制数

  • 2.双写绕过、大小写绕过、分割符绕过
    双写绕过,这种绕过适用于源码中又str_repalce()函数这里简单讲解一下函数的参数,它的形式如下str_replace(被替换的字符,替换的字符,字符串),双写绕过适用于将原本的字符串转换为”空“,可以理解为删除,其原理在于,有违法字符串的数据流经过函数时将字符删去之后不会再检查一边。举个例子来说,如果script时要被替换的,那么输入scriscriptpt,中间黑体字会被删除,而剩下的字符又会组成新的script。
    大小写绕过,这种绕过就是让函数识别不了字符是要被替换的字符,同时浏览器也好服务端也好,对大小写都不敏感。
    分隔符绕过分割符有%0A换行,%0D回车、%0C分页符、%09水平制表。这种绕过适用于str_replace函数把空格转换为”空“的类型。

  • 3.根据不同的注入点选择注入的语句
    举例来说就比如input标签的属性中可以添加“事件”,如下有事件的举例

javascript事件
这些事件有onload、onfocus、onerror、onmouseover、onstart、onfinish、onclick、onanimationstart、onanimationend、onloadstart、oncanplay、onprogress、onplay、onplaying、onloadedmetadata、onloadeddata

还有其它标签比如a标签中也可以、img标签中用onerror等。这些都没有定式全看大家怎么应用这里只是笼统的概括,不细细列举,想要了解更多的”童鞋“阅读其它人的博客。

其它文章
xss-labs前五关 详细

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperForming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值