php发展

首页 » 常识 » 诊断 » web渗透测试之SSRF漏洞详解
TUhjnbcbe - 2022/12/10 20:52:00
北京白癜风医院那家比较好 http://baijiahao.baidu.com/s?id=1725820796848674143&wfr=spider&for=pc

SSRF(Server-SideRequestForgery)服务端请求为伪造,SSRF是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制。

一、SSRF漏洞攻击利用1、可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;2、攻击运行在内网或本地的应用程序(比如溢出);3、对内网Web应用进行指纹识别,通过访问默认文件实现;4、攻击内外网的web应用,主要是使用get参数就可以实现的攻击;5、利用file协议读取本地文件等;二、SSRF漏洞发现及挖掘能够对外发起网络请求的地方,就可能存在SSRF漏洞从远程服务器请求资源(UploadfromURL,ImportExportRSSFeed)数据库内置功能(Oracle、MongoDB、MSSQL、Postgres、CouchDB)Webmail收取其他邮箱邮件(POP3、IMAP、SMTP)文件处理、编码处理、属性信息处理(ffmpeg、ImageMagic、DOCX、PDF、XML)1、分享:通过URL地址分享网页内容2、转码服务3、在线翻译4、图片加载与下载:通过URL地址加载或下载图片5、图片、文章收藏功能6、未公开的Api实现以及其它调用URL的功能7、从URL关键字中寻找sharewapurllinksrcsourcetargetu3gdisplaysourceURLimageURldomain三、SSRF常用的后端实现1、file_get_contents()这段代码使用file_get_contents函数从用户指定的URL获取图片。然后把它用一个随机文件名保存在硬盘上,并展示给用户。?phpif(isset(_POST[url])){content=file_get_contents(_POST[url]);filename=./images/.rand().;img1.jpg;file_put_contents(filename,content);echo_POST[url];img=imgsrc=\.filename.\/;}echoimg;?2、fsockopen()这段代码使用fsockopen函数实现获取用户制定URL的数据(文件或者HTML)。这个函数会使用socket跟服务器建立TCP连接,传输原始数据。?phpfunctionGetFile(host,port,link){fp=fsockopen(host,intval(port),errno,errstr,30);if(!fp){echoerrstr(errornumbererrno)\n;}else{out=GETlinkHTTP/1.1\r\n;out.=Host:host\r\n;out.=Connection:Close\r\n\r\n;out.=\r\n;fwrite(fp,out);contents=;while(!feof(fp)){contents.=fgets(fp,);}fclose(fp);returncontents;}}?3、curl_exec()使用curl获取数据。?phpif(isset(_POST[url])){link=_POST[url];curlobj=curl_init();curl_setopt(curlobj,CURLOPT_POST,0);curl_setopt(curlobj,CURLOPT_URL,link);curl_setopt(curlobj,CURLOPT_RETURNTRANSFER,1);result=curl_exec(curlobj);curl_close(curlobj);filename=./curled/.rand()..txt;file_put_contents(filename,result);echoresult;}?四、利用SSRF进行端口扫描.0.0.1:根据服务器的返回信息进行判断,大部分应用不会判别端口,可通过返回的banner信息判断端口状态。PHP后端代码:?phpif(isset(_POST[url])){link=_POST[url];filename=./curled/.rand().txt;curlobj=curl_init(link);fp=fopen(filename,w);curl_setopt(curlobj,CURLOPT_FILE,fp);curl_setopt(curlobj,CURLOPT_HEADER,0);curl_exec(curlobj);curl_close(curlobj);fclose(fp);fp=fopen(filename,r);result=fread(fp,filesize(filename));fclose(fp);echoresult;}?html前端代码:htmlbodyformname=pxmethod=postaction=

1
查看完整版本: web渗透测试之SSRF漏洞详解