许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。! A" D! j5 _" }( H3 p; L3 o
XSPA(SSPA)是什么?9 \6 h W; K( p; m' h1 j
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。# ]# y8 ~9 p+ E( Y# f l4 v
PHP fsockopen() function:7 @: I8 K8 E6 B/ X1 |
<?php
9 ?+ Q; k/ [9 vfunction GetFile($host,$port,$link)3 X7 B, I; ?) E) N; `- P
{4 t2 B! F: \6 X+ x- c* a* y
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);. }* d' d; U; \% ]. c- ]
if (!$fp) {
6 M) w! u9 c% ~* fecho “$errstr (error number $errno) \n”;
$ h: J( L: d' p( M} else {
' M+ |: x6 ]2 d- u) J- P$out = “GET $link HTTP/1.1\r\n”;
; H2 J K+ m& j$out .= “Host: $host\r\n”;, I6 {1 z4 C* Q2 d9 r
$out .= “Connection: Close\r\n\r\n”;: V& j. E) b0 I2 b: Y* U! q* C
$out .= “\r\n”;
) r; Y" ~' q% X9 t# G5 F5 n s5 Sfwrite($fp, $out);! [' d7 ?$ o! J ?$ j
$contents=”;
% U7 c2 J: y3 p9 v% kwhile (!feof($fp)) {# O+ A# H: l) t! J3 E
$contents.= fgets($fp, 1024);
/ c! B$ l( {! D6 t/ L}
" V2 M0 n; B5 F3 T7 M& Xfclose($fp);
( n9 z8 I, B- b |* Dreturn $contents;
! i2 R7 U+ |9 m, t}
( N! C0 R7 } |$ _* J6 O}$ K6 a9 T [& x( |
?>! b/ }3 e/ j! b) ]2 T
复制代码
6 X7 l9 I0 v- V, [+ N) q: n此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。0 w2 c+ [- e6 e* @" r4 D
PHP curl_exec() function:3 Y5 e; k* U. v7 }8 w' [ \
<?php8 G5 d, D6 O- Q- D0 j6 ?" {1 ~
if (isset($_POST['url']))) x7 {* X! L( @, ^9 T
{
0 z7 d1 x' d6 A# E3 h$link = $_POST['url'];9 z1 }9 e: D. [ C+ I, s0 n1 p
$curlobj = curl_init();( S: ^: q: H0 ^! {
curl_setopt($curlobj, CURLOPT_POST, 0);3 J1 D j2 U) M$ }9 s* {
curl_setopt($curlobj,CURLOPT_URL,$link);
) j$ F2 v5 k1 G. C5 Tcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
( O- d; A X E0 S" }! Y$result=curl_exec($curlobj);
. M7 P( G! c+ b ocurl_close($curlobj);% h' Q% D- m$ I+ ~6 d4 I+ k
, e, p; W) D% y; H" j- ?# J$filename = ‘./curled/’.rand().’.txt’;5 ]; Q$ v; r' y1 j; D
file_put_contents($filename, $result);* H( Z. z# s; A( B Q# w
echo $result; [6 v" T" C7 L# O# @2 S
}4 P+ @! ?& i1 a. ^; \
?>
: [; k3 p% z. x复制代码- m2 j" H/ b6 u0 F5 w- r7 ?/ w
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
$ {$ H2 a/ I% M" X( u在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:. E1 R! p. q' ], n7 G
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,5 k: k; n4 Y# P: k
2。开发弱势运行的程序在Intranet或本地Web服务器 e! Q9 X% h0 h2 Y
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
7 {* H* T% U( c0 f. i9 c! {$ T4 A4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
1 U. S5 G3 Q h4 N% l5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |