许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。! p/ ?, A# @; C. ]0 a* A5 M
XSPA(SSPA)是什么?
) r6 d, W( G9 o, \$ {, F5 _: z如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
/ i" d( g' G* B8 G8 ^PHP fsockopen() function:
; Y& f9 B# V' O1 o<?php* r2 w' |* J4 ^1 M; i7 f% h
function GetFile($host,$port,$link)
' p1 {2 E* W7 x: A6 O- S; U: ?) a{# q u' g) H) c6 L% F. k
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);2 i& J1 B. F: I7 F
if (!$fp) {
- l$ i- W& U* ]' t* Necho “$errstr (error number $errno) \n”;
" [! W8 t/ x: A$ L$ e) D} else {
+ c$ g( m- I' v' E# s$out = “GET $link HTTP/1.1\r\n”;3 C& M( ]/ @. ]7 }; X. G$ |/ [
$out .= “Host: $host\r\n”;- I/ g3 _' Y, ^+ c* \$ u4 w
$out .= “Connection: Close\r\n\r\n”;8 w3 l; H! V5 P, f/ l
$out .= “\r\n”;, l8 r2 Q) G3 U, \5 S5 q! E
fwrite($fp, $out);
) u8 ~/ \: \$ ^% X' n. `: f3 ]$contents=”;8 u c; z) ~# W/ s4 K1 W; n6 \
while (!feof($fp)) {
7 y; N. U. D0 | x$ J6 {- ~$contents.= fgets($fp, 1024);
' c' G3 ^+ e. G4 u( O* }2 T! \}
& W9 t, S" @; |5 F' h1 Afclose($fp);% l3 t( O. s: ?; X% o i5 Y8 p
return $contents;
( Y- O# R) N- r" E) o}4 `1 i" s! G5 q; c4 v
}, u, a" i) ]5 l$ B* @
?>
: Z! d6 z* `$ F, B复制代码$ ^( _; y0 y4 P- Q/ A
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。: H. T# T3 B1 H9 _0 m
PHP curl_exec() function:
$ C9 y: M7 D4 ?<?php
/ J( }# C( m* l X3 Pif (isset($_POST['url']))
# l+ e; q0 K) ?' O/ O( F& T{
+ C P( @; U" b7 k4 N0 z/ E0 _$link = $_POST['url'];' @) U8 f. @$ |0 [( t* e
$curlobj = curl_init();
5 f7 h8 r1 e- y9 o* _curl_setopt($curlobj, CURLOPT_POST, 0);
, T0 V! e, G# ccurl_setopt($curlobj,CURLOPT_URL,$link);- d3 A0 H* h. t1 h
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);6 z, V0 n0 h8 U3 y; q# z. K. N: L
$result=curl_exec($curlobj);
5 L5 k6 ~5 ~( |9 x6 O* s# g* {' ]curl_close($curlobj);
% S$ V4 p8 `1 N5 x+ t 5 U% @- ]1 F' z: I: ~6 Q! A
$filename = ‘./curled/’.rand().’.txt’;% t$ J$ _1 j& Y9 H7 k+ W) M) D( N* Q
file_put_contents($filename, $result);
@# G: i1 d3 S# xecho $result;
9 F j2 m) ]; y" ^+ W) q}* m* [; d# V' P9 U% S
?>6 B" t0 @& r, J9 T
复制代码
2 Y; d. y! }7 `/ O# T- \+ }这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
& |8 P7 b$ `4 S2 \: H) b在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:6 X K8 Y3 }' a% ^* E
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,# K1 J n m3 I1 B
2。开发弱势运行的程序在Intranet或本地Web服务器: m7 ?5 k3 L$ ?6 h
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)6 }1 }( f H: O6 R, w- s
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
8 n& y: @2 G& z) W5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |