网站地图    收藏   

主页 > 后端 > 网站安全 >

v.163.com一个纠结的xss过程 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 除了把自己这篇文章贴上,也贴一下天马行空坛子里的FAQ,便于大家学习。By:0x0F3r这个漏洞从发现到利用是一个蛋疼的过程。主要说说过程吧,打开http://v.163.com,发现有个搜索,习惯性...

除了把自己这篇文章贴上,也贴一下天马行空坛子里的FAQ,便于大家学习。
By:0x0F3r

这个漏洞从发现到利用是一个蛋疼的过程。
主要说说过程吧,
打开http://v.163.com,发现有个搜索,习惯性得打上了aaaa”>

http://search.v.163.com/search/00-00-00-0000-00-aaaa”>/
提交到了这样一个链接上。
查找源代码中aaaa,发现能找到的均过滤。
打算换点可是手贱点了下那个什么“本山带谁上春晚“跟前的搜索,看了下源码发现页码的位置也会有这几个字,于是想是不是有结果就可以看看那里能不能跨呢,我这样测试了一下。
然后我这样测试

 

http://search.v.163.com/search/00-00-00-0000-00-%E6%9C%22%3E/

果然得到了我想要的结果。如图。
闭合.png

发现问题还没完啊,弹个窗才行。
但是我加上弹窗代码就会没结果,这怎么办。如图。
闭合2.png
继续测试吧。
用空格 & |分别测试后,发现|可以作为”逻辑或“筛选结果。
那么弹窗就容易咯。
然而本来以为可以弹,自信满满的打开了aq.163.com,可是发现。。。如图。

 

http://search.v.163.com/search/00-00-00-0000-00-%E6%9C%AC%22%3E|%3Cimg%20onerror%3D%22alert%281%29%22%20src%3D%22x/

闭合3.png
这什么情况。。
再看看原来空格会作为”逻辑与“筛选结果。
那么去掉空格就OK了

http://search.v.163.com/search/00-00-00-0000-00-%E6%9C%AC%22%3E|%3Cimg/onerror%3D%22alert%281%29%22src%3D%22x/

弹。如图。
闭合4.png



FAQ IN Tmxk.org
 
空格会作为”逻辑与“筛选结果呢? 你的意思是说空格前 和 空格后 服务端会当作两个字符串分别进行筛选???
有点想不通这样的说法,处理标签之内<>,不管标签中有无空格都应该是一个整体,应该不可能把标签之内的空格来当作筛选条件吧;至于放入空格不行,也有可能是服务端做了某些限制,标签属性名和属值之间可以用/ 和 /**/来代替。
 
 
还有一点不太明白运算符 | & ,为什么使用逻辑或,可以执行后面的alert?服务端处理机制是怎样的??
 
当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”,既然这样,返回的为什么不是本?
 
0x0F及各位牛,解答下以上问题吧,多谢了~
 
x5ser 发表于 2013-2-8 22:59 
空格会作为”逻辑与“筛选结果呢? 你的意思是说空格前 和 空格后 服务端会当作两个字符串分别进行筛选?? …
 
第一个问题:我的意思是空格前后 会作为两个关键词同时进行筛选,比如前面的关键词“本山带谁上春晚”,以“本山 春晚”搜索其实就是“本山”和“春晚”同时出现,而可以分开的意思。
第二个问题:为什么用逻辑或,可以执行alert,因为逻辑或也就是|的两边任意一个成立就会返回结果,经过一开始的测试,“本”>”返回的是搜索“本”得到的结果,这样的话就是说引号和尖括号不干扰“本”的搜索,在“本”>”之后加上|然后加上xss代码,xss代码搜索肯定是无结果的,而“本”>”是有结果的,二者选其一返回真,也就是说选“本”>”返回真(存在结果),就形成了xss
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论