戏耍XSS的一些技巧
Black-Hole
0×01:当注册/登陆页面/修改密码页面等存在XSS时
当你手工或者软件挖到一个页面的xss时(无论是反射xss或者储蓄xss都可以),这个时候想要深入的利用这个漏洞,该怎么做呢ebRTC来内 端口检测cookies(登陆页面和注册页面一般都不会有用户cookies)览器漏洞来调取cmd入侵(能挖到么)p>
这不行,那不行。到底怎么办呢这个时候可以根据页面的特性来完成,假设当前是注册页面,存在XSS,那我们应该怎么做才好呢。如果是反射XSS,可以远程调用js文件,如果是储蓄型XSS可以在页面里面写。代码如下:
以img标签发送get的方式来把用户的账 密码发送到服务器(之前使用JavaScript结合WebRTC实现内 端口检测的时候就是用这个的。),因为img的src会以get的方式来发送数据,我们只需要在服务端写上$_GET[‘user’]和$_GET[‘password’]就可以获取到了。因为我们本身并不是一个完整的请求,只有发送。所以不需要担心跨域的问题。
如果当前页面的本身调用了jQuery,那就不需要上文那么麻烦了。因为代码量真的很少很少,代码如下:
当代码OK后,用户点击提交时,可以注册,但是同时他的账 密码都会被我们所知道。相当于wifi中间人劫持了。
说了半天的话,也给了那么多代码,不来点事例有点说不过去了。事例:
我们先假设pan.baidu.com存在XSS。是在URL里的s参数里。就像:
http://pan.baidu.com/,开始分析构造了。
打开页面,F12,看下用户账 及密码的DOM。
这里我们可以使用id进行定位。Input的type为text定位好了,下面就是定位登陆按钮了。
分析完了后,我们可以进行代码构造了:
OK了后,我们来实验下:
先用burp把数据包截断,防止页面跳转。点击登陆后,我们在“控制台”看下
渲染成功,我们在服务端看下:
这里没有使用php。使用的是nginx的log日志。php因为反馈不明显,除非导入到数据库里。那就太麻烦了。这里我们,可以看到成功了。如果你想使用php的话,再index.php里写上$_GET[‘user’]和$_GET[‘password’]就可以获取到了。
0×02:伪造页面,URL不变
之前大家伪造钓鱼页面时,经常使用window.location.href=”http://钓鱼页面.com”;或者起一个非常有诱惑性的域名,比如:htpp://www.freebvf.com/,再或者以手误的方式来设置域名,比如:http://www.freevuf.com/,但是这些就有点low了。这里技巧有个要点,就是当前页面变化,但是URL不变。这里有两个方法。如果你有更好的方法,欢迎提出来,让我学习下。
第一种方法:
利用iframe,去掉iframe的边框及滚动条。再时iframe的宽度100%,占满整个页面。
var windowHeight=$(window).height() + 500; //获取当前可视区域的高,并且加上500px,防止当浏览器窗口变化时,泄露下面的内容
利用了iframe可以调用外部窗口的特性来进行构造代码。要点有:把iframe最大化、禁止页面滚动、隐藏滚动条。来个事例图:
还有一种办法是利用ajax来进行伪造,获取外部的 页,然后利用document.write()来把内容写到页面。因为document.write()有个特性就是,使用document.write()时会重写页面,无论页面里有什么内容,都会被重写。代码如下:
这里有几个需要注意的地方,document.write()写入页面后,所有的资源都会重定向到原本的地址。打个比方。
我们的钓鱼 页是htpp://www.freebuf.com/。里面的在调用js/css/img/swf等资源的时候,使用的是相对目录来进行索引的。就像下面这样:
(这是我编的,freebuf并没有使用相对目录)
那我们将freebuf这个钓鱼页面也到目标 页后,假设目标的URL是:http://www.baidu.com/。那这个js的资源就会被指定为http://baidu.com/other/js/new/backtop.js。从而导致页面不受控制。就像下面这样:
看下控制台就更加的清楚了:
还有一个需要注意那就是需要再这个文件也就是index.php里的头上写入下面的代码:
这样就可以使用ajax来进行跨域了。
这两个方法的优点和缺点我们说下:
第一种用iframe:
缺点:容易被发现,。F12就可以看到一个iframe,而且当浏览器的窗口足够大的时候,会使原本的 页泄露出一点。从而导致用户发现。代码量多
优点:限制特别少。
第二种用ajax:
缺点:使用ajax看来请求远程地址并重写的时候,需要注意的是,即使钓鱼 站不使用相对路径,而且还加入了
优点:代码量特别少
0×03:other小技巧
JavaScript键盘记录:
这段代码只需要运行就行了。如果想发送到远程的服务器上面,可以使用ajax或者我上面的说的
对于这种厂商,我只能说自己脑残不要说别人技术差。
黑哥之前的XSS漫游内 ,以及XSS遍历内 IP端口。还有XSS利用浏览器API弹计算器等等,事实证明这不是08年的时候了,不要一直想着XSS只能打cookies,可能你正在这样想的时候,别人已经用xss漫游你的内 了呢。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!