戏耍XSS的一些技巧

戏耍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进行处理,非常感谢!

上一篇 2018年7月13日
下一篇 2018年7月13日

相关推荐