返回列表 发新帖

XSS攻击冷门花样玩法总结| →『网络安全区』

302.4k 6
kjeittccdf 发表于 2015-3-28 01:41:51|湖北 | 查看全部 阅读模式
作者:blackhole' [( ^# @* _$ ?5 S! D. w- C# F
1 q5 A" p2 ]# G$ `5 b  j) t9 u8 x
前言什么是冷门,就是很少有人知道,而且不方便利用,危害性有的大,有的小。但对攻击者来说,它有一个“优点”——能让网站管理员不经意之间中招,一个小小的细节,就能完成攻击。本文里总结的攻击方式比较冷门,但危害和影响并不小,值得我们关注。  d. j7 \. X: I+ W
0×01 Apache||Nginx访问日志的Attack网站管理员有时为了更好的维护网站,会在服务器上开启日志,为了更快一步的发现安全问题,并快速应急。但是Apache、Nginx提供的日志模块,根本不是人看的。就像下面这样:; P) f/ [# X' b% ]

1.png

1.png
) D' G" W4 \! [3 L" U, L
这样的日志,你让管理员怎么快速高效的找到不正常的地方。& @2 [5 J" g8 U! M# J
于是很多管理员都修改了日志模板,让他成为html格式并且能按照一定的方式排版。排版什么的不用在意,我们只需要在意他是html格式的。当然了有的会直接做个网站,专门来显示日志的,用了后端语言和数据库操作,这些更为高级,攻击起来也颇有难度,但是除了一些特别大的公司,一般不会这么蛋疼式的给日志还做个website。7 m, O9 v+ }! g. H
前面我说到了很多有安全意识的管理员都会开启日志,如果他是个正常人,应该会把日志按照一定格式排版,我倒是遇到很多这样的。) Q; n* g* C* N4 A% r! p% j8 B
OK,既然日志是html格式的了,我们就可以开始攻击了。
& l: S0 e+ c4 Z3 a5 d这里可能就有人要问了,html怎么了,就因为他日志保存的是html格式,你就能拿下服务器了?!( v/ n5 X8 \4 B: i6 \8 d) j0 a
呃…还是有可能的,这里有个前提“把日志按照html格式输出来的时候,不能有过滤字符串的方法”,但是因为Apache、Nginx的有一个特征,就是在日志输出的时候,很难指定过滤,除非你安装第三方模块。* w' L0 W9 R$ _0 W% {# P& ]
下面是Nginx默认的日志模块的规则:( s! ?' p; r0 d! D0 w

11.png

11.png

' ?8 W% p+ E- f- K# e" B0 F如果全部默认的话,你就要在/home/wwwlogs/域名.log里用cat慢慢看了,像我这种爱偷懒的人,是不准许这种浪费时间的事情发生的。于是乎,我增加了nginx.conf日志的规则。
5 G3 ^1 K2 _+ h+ @! Z; c" j# S9 H

111.png

111.png
+ Z# U6 b5 Z# R& f
然后在vhost/域名.conf下的日志代码修改为:
7 {3 F) V4 L' q" x) K6 i

1111.png

1111.png
  P- M2 d0 Q0 ~6 u! f6 _5 ]* z
重启nginx,当有人访问的时候,会在/home/wwwlogs/域名.html里生成(关于apache的日志配置,在VirtualHost配置LogFormat参数 ,来修改日志如何显示,再在CustomLog里把输出的格式改下就行了。),下面是打开的内容:
& h$ _) Z. T" s; R6 M) E  U1 L6 a" R

5.png

5.png

6 S, H( U1 E* p. l这时漏洞就来了,看过我写的XSS系列的朋友们应该知道IP、UA等是可以伪造的,OK。下面我们就开始进行伪造攻击。
7 I; ?3 H! K% e  |! e' l我这里就拿UA举例吧,maxthon浏览器自带了修改UA的功能(设置-高级-其他): P0 c# n4 s: _" _( _1 d, j

55.png

55.png

+ Y( t# G; A# ?5 W; W这个时候,我们再浏览网站。现在我们打开服务器上的日志文件看看吧。8 J2 `2 F, w) u

555.png

555.png
+ v+ z9 A6 }2 I2 e
成功弹窗,因为我的服务器没有安装图形界面,就把html拖到本地电脑打开了。大伙可以自行脑补日志文件在linux下打开。当然了有的管理员会吧日志放到网站里,方便查看,就像这样:# m  Z7 }, C% N9 Z5 l8 h% ]

6.png

6.png

3 F5 V/ S2 {- r弹窗了又能证明什么呢?之前黑哥就演示过XSS打内网,我也跟着duang了起来。下面是获取内网IP的js代码(使用WebRTC,因为浏览器限制,想获取真实的外网IP,除chrome、Firefox之外都不行)。5 t0 |3 y5 |4 \  v! Z! T) L

66.png

66.png

! J4 g) J- _% h; `: S- B: l" M如果想获取外网IP,把第12行,改为
  1. servers ={iceServers:[{urls:"stun:stun.services.mozilla.com"}]};
复制代码
就行了。在文章底部会给出代码,大伙可自行下载(打开控制台即可见到IP)。: k- G0 Q+ E1 m1 Z) C& y4 r
OK,有了内网IP就要渗透内网了。这里我给出获取内网IP端口的代码:. S. Q6 p+ G4 D- V$ [" r

666.png

666.png
" C2 T' C9 U! B- J2 a
代码就是在获取内网IP上做了修改(原谅我这几段神代码…经常用jquery,很少用JS)。
6 E1 x4 H3 C8 n5 Y1 H再结合XSS平台把42行的代码改下,如果成功,就把ip发送到XSS平台,新建个XSS模块就行了。你也可以同时加上IMG标签,来看对方是用什么解析网站的,代码如下:2 |6 C! @  h& y4 f) H
  1. <imgsrc="内网IP/apache_pb&#46;jpg" width="0"onload="xxxx">
复制代码
和上面差不多,遍历就是了。
/ O. g9 E8 t$ W# ^' h配合POC自动拿内网的,大家可以去找找黑哥的PPT。我这POC几乎没有的渣,就不出来丢人了。
! W- M" ?6 m* Q% `9 P5 }关于利用POC的利用方法,大致是这样的:
# d/ }6 S/ Q/ W7 j, g/ u检测内网有没有使用某个CMS,假设我有dedecms的getshell。使用js来写POC,放在代码里,大体的代码是这样的:
9 M+ [. x6 i8 F/ B9 y2 }

6666.png

6666.png

' a' ^2 h$ H* q9 M3 l2 w8 H这个只能针对图片,如果不考虑跨站。可以使用ajax。
! X  a4 B9 Q' o2 ?3 R) k如果不确定网站的标识图片是什么,可以使用iframe标签,src的值为IP:80。# f+ n! C# A# E9 i% t
代码如下:
  1. var iframe=document&#46;createElement("iframe"); var ip_url =ip + "&#46;" + i + ":80";Iframe&#46;setAttribute("src","http://"+ ip_url); //记得把宽高设置为0,在给个ID parent&#46;appendChild(iframe); if(document&#46;getElementById("ID")&#46;document&#46;getElementsByTagName("body")){ //poc代码 }
复制代码
下面是把获取的IP 端口发送到指定网站上的代码:
; F( `5 @) z3 n

8.png

8.png
) C- m8 G7 {, b8 E
下面是我获取后的:, h7 b3 n# @, {4 L8 |& m

88.png

88.png

0 h& {0 a7 J8 j1 ?: G/ A5 j. x3 `获取内(外)网IP和端口并发送到指定的网站的代码下载链接: http://pan&#46;baidu&#46;com/s/1ntJudWP
' b5 z! I, A0 o$ a0 ]. @- P1 ~0×02:插件安全有的黑客在攻击的时候喜欢有目标的攻击,也有的黑客是漫无目的的去攻击,而这一节所说的就是“漫无目的”的攻击,且,把漫无目的的攻击最大化来处理。) n/ t1 e" u: G) t
很多人都会XSS,也有很多人会CSRF。在刚开始玩的时候,很多人都都遵循一个XSS法则:见框就插和见参数就插。当然了玩的熟练之后就加上抓包分析、DOM XSS什么的。不知道你们有没有想过能不能把XSS# E  E+ `9 t4 O7 s# ]" v( r
<p />的攻击范围变得更广一些呢?这里肯定有人想起了 XSS蠕虫。XSS蠕虫是可以大范围传播,但是如果不是同一个网站呢?这个就比较难了吧,因为这涉及到“跨域”的问题了。但是事实不是绝对的,跨域是很厉害。但是在“浏览器”看来,什么都不是,就像duang的一下加了特技。' o; Y0 k7 Y, Y4 e

6 w3 ~0 ?# N1 l0 c3 j因为浏览器是个非常大的面包,各大公司都想分一杯羹。于是乎360 QQ 搜狗等等互联网巨擘纷纷开始加入了浏览器的队列。
; m4 ^6 |) z7 V1 g3 b% _因为浏览器越来越多,厂家们为了拉拢更多的用户,纷纷的推出了“插件”。因为插件的存在,很多小厂家们开始纷纷的写插件(可以打知名度),等于是一箭三雕。
! X. F4 C1 W9 e6 m9 d但是由于插件的是运行在各个网站里的,就比如“有道翻译”它必须在每个网站上都运行自己的代码,于是浏览器插件开始支持跨域。但是他们忽略了一个问题,插件的跨域不进行认证,导致很多的人都可以写插件,上传插件。其实插件问题已然是个重灾区。因为浏览器们认为不管他们的事。他们认为这属于一个一个愿打一个愿挨。事实却不是这样的。
. t2 D+ c0 o% q2 D: }下面是我自己写的一个插件,叫“网站自动响应式”,现在已经有38人安装了(其中有360安全部门的人也安装了哟~)围观链接: http://extension&#46;maxthon&#46;cn/detail/index&#46;php?view_id=2802
; E4 t5 Z/ `0 c9 n9 c5 \9 s我们使用遨游官方提供的MxPacker来压缩解压插件: http://bbs&#46;maxthon&#46;cn/forum&#46;php?mod=viewthread&tid=611580
4 d3 _% K6 r9 B3 Y. F解压下来有三个文件Icon(放插件图标的、def&#46;json(主文件、配置、调用的)、base&#46;js(插件的js)( v, \+ V) f' o
def&#46;son:

888.png

888.png
9 v: S1 H9 L$ n5 r* p
Base&#46;js:

9.png

9.png

2 U% |& b& j6 Z& d- n: p) a# r这里感谢“陈星”提供的vps。! ?0 \* S7 h. Q8 _- r
咋一看是没啥问题,duoluosb&#46;com/flawless/base&#46;js一开始也是我写的响应式代码,没加其他的。为了方便遨游插件审核。
% u' P, [  N. |; P2 z  u3 {9 o9 E- p2 W等上传成功后,我就修改了base&#46;js的代码,在前面加了
1 q9 b) o8 i% n1 h- ]
9 o, |' t9 i5 X
                               
登录/注册后可看大图

9 Z/ X8 B6 z3 x* X. s9 x+ O3 z获取cookies的,但是后来我看到360的一个朋友也装了这个插件后,我就把第一节说的js内网扫描代码也加了进去。后来被他发现了。本来还想看看360内网是长啥样的呢。。
0 c& N  |: t1 e5 B6 I3天之后,我登陆xss平台看了一下。已收到5141个cookies了% E9 S* E' `! S/ r) s
7 p7 B! W7 H6 W, {+ e( t( q; R

999.png

999.png

0 h/ \+ q, i( |. ]+ }. w0 B里面包含了支付宝、QQ邮箱、等等的cookies。现在知道插件的问题了吧
8 L4 _$ \0 C) y% D! [% F当然了,这个需要别人安装才可以,有没有办法不安装就可以呢?答案是可以的。就是入侵别的插件的API。5 ^$ L  _+ [4 \5 o; E; }$ M) j; n9 B
比如有道翻译:3 E9 \6 q4 v) Z

9999.png

9999.png

; X. y# l' I' C0 A& ~6 h3 P现在已经有了5574个用户安装了,我们入侵它的API接口,然后修改js,就可以达到一样的效果了。具体怎么做呢?难道要一个个安装、拆包、分析么?累死算了。
& N- n! x2 Q8 ?9 T, R+ H/ W下面是个小技巧,教大家如何快速寻找API接口。首先下载
7 H4 t: B  T( z: Y- n

0.png

0.png

. T8 X- W; I2 r( k* r在浏览器左边找到插件,点击插件
) d% M' g6 R- |) o

00.png

00.png
7 S+ @, Q9 E' M. }
右键审核元素( j3 ^0 Z' Z1 `- H6 Q# I* i

000.png

000.png
( d4 v* C8 I$ n( N  L
输入下面的代码:
  1. for(vari=0,tags=document&#46;querySelectorAll('iframe[src],frame[src],script[src],link[rel=stylesheet],object[data],embed[src]'),tag;tag=tags;i++){ var a = document&#46;createElement('a');a&#46;href = tag&#46;src||tag&#46;href||tag&#46;data; if(a&#46;hostname!=location&#46;hostname){console&#46;warn(location&#46;hostname+' 发现第三方资源['+tag&#46;localName+']:'+a&#46;href);}}
复制代码
返回的结果:  W3 A+ ?% b. l( L

0000.png

0000.png

* n: v. _9 L/ U& @: L- y6 c这个时候我们就可以利用这些网站,来实现入侵,并修改了。' [' @* U9 h# L, r
0×03 利用Nginx&Apache环境bug来实现攻击现在很多网站都采用了前端nginx后端apahce这种方式来做网站,nginx对静态资源利用的非常好,apache对php利用的非常的好,当这两者在一起的时候,网站处理事件起来也比较好。这个时候呢,因为nginx&apache环境很多都是在linux下搭建的,没有那么的防火墙供你选择,于是很多根据nginx&apache来开发开源WAF模块。很多的网站也都使用了。+ B" v+ S$ ]1 T( p

9 `0 n2 H) }; r# D8 t9 h但是呢,nginx做反向代理的时候有个缺陷,那就是根据文件的后缀的来判别这个文件是静态资源还是动态资源,假设,当我们访问index&#46;html的时候,nginx根据后缀认为这是一个静态资源,于是就交给自己来处理,当遇上index&#46;php的时候,nginx根据后缀认为这是一个动态资源文件,于是就转发给后端的apache来处理。下面是相关的配置:2 O2 ^9 _9 l$ {0 k- {( T2 J

7.png

7.png

2 w8 P  Q* z0 Q1 w. e看的时候是没什么问题,几乎挑不出毛病,但是,当这个缺陷遇上浏览器的时候就会duang的一下,出来一个致命的漏洞。因为浏览器默认会隐藏index&#46;php文件名(并不一定是index&#46;php,要看服务端的配置,有可能是其他的文件,具体的请百度,这里就不再阐述了)
: R# z: |6 ^% L2 y: v1 @8 Y假设网站是freebuf&#46;com,我们打开freebuf&#46;com/index&#46;php的时候正常,因为这是一个动态资源文件,nginx交给apache来处理了。  \! F! g0 w; h3 ?8 X7 s' g; q
但是,如果我们输入freebuf&#46;com,nginx就会认为这是一个静态的资源脚本,并不会交给apahce处理,也就不会触发第三个location。这个时候是nginx来负责解析php的,而nginx对静态资源文件并没有使用waf,这个时候漏洞就出来了,我们可以不带index&#46;php来攻击,比如freebuf&#46;com/?Id=<script>alert(1)</script>就可以来完成攻击。
( A1 f1 ?, T  v0 {这只是一个例子,还有一种,那就是在apache上使用apache的waf模块,nginx发现这是个php的时候,就会还给apache,apahce先交给apache的waf,再返回内容。漏洞的出现方式和利用方法和上面一样。

回复|共 6 个

wwzcdenleclv 发表于 2015-7-20 15:36:28|北美地区 | 查看全部
为了不让帖子沉得太快!!!为了人人知道这个~!! 我不是原创~!!但是我要把他发扬广大~!!!
gevaemaidovef 发表于 2015-7-20 15:37:37|美国 | 查看全部
cd:遮~~~~~~
effoggikeftor 发表于 2015-7-20 15:41:42|美国 | 查看全部
因删贴不及时所产生的任何法律(书法,基本法,劳动法,婚姻法,输入法,国际法,今日说法,与台湾关系法及文中涉及或可能涉及以及未及之法,各地治安管理条例)纠纷或责任本人概不负责。
mwxny 发表于 2016-2-19 18:41:24|美国 | 查看全部
楼猪.重量级人物阿.
wwzcdenleclv 发表于 2016-2-19 18:42:37|英国 | 查看全部
照你这么说真的有道理哦 呵呵 不进沙子馁~~~
effoggikeftor 发表于 2016-2-19 18:43:03|北美地区 | 查看全部
我只是为了十万积分默默奋斗。

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表