一个网络设备的常见功能--连通性检查SSRF漏洞--被黑客利用当做扫描器
一、我们先来看一下很多网络设备都有的一个常见功能--连通性测试:
很多网络设备都具备与其他设备通信,联动的功能,例如网络设备联动安全设备,网络设备联动认证设备等等。此时都需要一个对端IP和对端端口号作为配置依据。而且一般都有连通性测试功能,作为配置运维人员检查的工具,但是如果没有做好,就会成为攻击者的一款扫描器:
二、我们来看看如何实现这类功能:
1-views.py
def ping(request):
if request.method not in ["POST","GET"]:
return HttpResponseRedirect("/myapp1/ping")
if request.method == "GET":
return render_to_response("ping.html")
if request.method == "POST":
try:
ipaddr = request.POST["ip"]
port = int(request.POST["port"])
except Exception,reason:
return HttpResponse("parameters error,reason:%s"%str(reason))
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
sock.connect((ipaddr,port))
sock.close()
return HttpResponse("OK")
except Exception,reason:
sock.close()
return HttpResponse("No")
2-urls.py
urlpatterns = [
# Examples:
# url(r'^$', 'mysite1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
#url(r'^login/', "myapp1.views.login"),
#url(r'^sql/', "myapp1.views.sql_injection"),
#url(r'^mainpage/', "myapp1.views.main"),
#url(r'^verifycode/', "myapp1.views.verify"),
#url(r'^update/', "myapp1.views.update"),
#url(r'^session/', "myapp1.views.sessioncheck"),
url(r'^ping/', "myapp1.views.ping"),
#url(r'^register/',views.register.as_view()),
#url(r'^game/',views.savegame.as_view()),
]
3-ping.html
<!DOCTYPE html>
<html>
<head>
<title>网站连通性测试</title>
</head>
<body>
<center>
<form action="http://127.0.0.1:8000/myapp1/ping/" method="post">
<p>IP地址:<input type="text" name="ip"/></p>
<p>端 口:<input type="text" name="port"/></p>
<input type="submit" value="测试"> </form>
</center>
</body>
</html>
来看功能截图:
结果如下:
反之亦然,我们来看:
结果如下:
很明显我们可以构造脚本,对此进行利用,做到内网探测,寻找开放端口,本来一个好好的功能就变成黑客手里的工具了。
如何利用,太简单了,写一个脚本构造post报文,探测就可以了:
#随便写一个利用的demo代码:
import requests def send(ip,port):
response = requests.post("http://127.0.0.1/myapp1/ping",data={"ip":ip,"port":port})
if response.content.find("OK") >= 0:
return "open"
else:
return "filter"
三、防御这类问题:
首先要明确是的的确确是一个SSRF漏洞,第二点明确这的的确确是一个需求。
防御的办法:
1、加一个频率限制,缓解措施。
2、加一个验证码,基本可以杜绝扫描一类的恶意利用。
一个网络设备的常见功能--连通性检查SSRF漏洞--被黑客利用当做扫描器的更多相关文章
- SSRF漏洞分析与利用
转自:http://www.4o4notfound.org/index.php/archives/33/ 前言:总结了一些常见的姿势,以PHP为例,先上一张脑图,划√的是本文接下来实际操作的 0x01 ...
- SSRF漏洞挖掘经验
SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问 ...
- SSRF漏洞的挖掘经验
本文转自:https://sobug.com/article/detail/11 SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造 ...
- 6.(转载)SSRF漏洞挖掘经验
SSRF 漏洞的寻找 一.从WEB功能上寻找 我们从上面的概述可以看出,SSRF是由于服务端获取其他服务器的相关信息的功能中形成的,因此我们大可以 列举几种在web 应用中常见的从服务端获取其他服务器 ...
- ssrf漏洞分析
ssrf漏洞分析 关于ssrf 首先简单的说一下我理解的ssrf,大概就是服务器会响应用户的url请求,但是没有做好过滤和限制,导致可以攻击内网. ssrf常见漏洞代码 首先有三个常见的容易造成ssr ...
- SSRF——漏洞利用(二)
0x01 概述 上篇讲述了SSRF的一般用法,用http协议来进行内网探测,攻击内网redis,接下来讨论的是SSRF的拓展用法,通过,file,gopher,dict协议对SSRF漏洞进行利用. 0 ...
- SSRF漏洞利用之Redis大神赐予shell
0x00实验环境 1.centos靶机(IP为:192.168.11.205,桥接模式) 2.kali黑客攻击主机(IP为:192.168.172.129,NAT模式) 0x01实验原理 这段 ...
- Atiit 常见功能 常用功能与模块的最快速解决方案
Atiit 常见功能 常用功能与模块的最快速解决方案 一.大力使用第三方API接口 一.导出excel jquery.table2excel 二.Form表单验证,使用h5验证属性 验证发生在form ...
- 【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录:http://www ...
随机推荐
- 对C++对象内存模型造成的影响(类/对象的大小)
首先重新回顾一下关于类/对象大小的计算原则: 类大小计算遵循结构体对齐原则 第一个数据成员放在offset为0的位置 其它成员对齐至min(sizeof(member),#pragma pack(n) ...
- Zepto源代码分析一~核心方法
今天抽出时间复习了一下Zepto的源代码,依照自己的理解进行凝视. 欢迎大家拍砖. 源代码版本号:v1.1.4 源代码下载地址:http://zeptojs.com/ 分析总体代码之后,整理出架构图: ...
- struts2开发流程及配置,域对象对数据存储的3种方式
一.开发流程 1)引入 jar 包,其中必须引入的有(我是用的struts是2.3.32) commons-fileupload-1.3.2.jar |文件上传下载commons-io-2.2 ...
- mysql的show操作
SHOW CHARACTER SET 显示所有可用的字符集 SHOW CHARACTER SET; SHOW CHARACTER SET LIKE 'latin%'; SHOW COLLATION 输 ...
- Netty(四):粘包问题描述及解决
拆包粘包问题解决 netty使用tcp/ip协议传输数据.而tcp/ip协议是类似水流一样的数据传输方式.多次访问的时候有可能出现数据粘包的问题,解决这种问题的方式如下: 1 定长数据流 客户端和服务 ...
- 编写每天定时切割Nginx日志的脚本
自动每天定时切割Nginx日志的脚本,很方便很好用,推荐给大家使用.本脚本也是参考了张宴老师的文章,再次感谢张宴老师.1.创建脚本/usr/local/nginx/sbin/cut_nginx_log ...
- iOS_文件上传进度条的实现思路-AFNettworking
iOS_文件上传进度条的实现思路-AFNettworking //要上传的文件名,在这里我使用当前日期做为文件的名称 NSString * fileName =[NSString stringWith ...
- js基本知识3
1. 函数 function 函数的声明 函数的 调用 函数的传参 2. 函数返回值 Return 返回结果 返回给函数 Id 函数 function $id(id) { return documen ...
- 改进cocos2dx中lua读ccb的方法
cocos2dx自带的CCBProxy真弱,还好提供了一个CCBReaderLoader.lua,但是也不好用, 于是修改了一下CCBReaderLoader,下面直接贴代码了. function N ...
- C语言 · 三角形面积
算法提高 三角形面积 时间限制:1.0s 内存限制:256.0MB 问题描述 由三角形的三边长,求其面积. 提示:由三角形的三边a,b,c求面积可以用如下的公式: s=(a+b+c ...