zoukankan      html  css  js  c++  java
  • 01 WEB白帽子Python入门

    1-1 渗透测试介绍
    1)什么是渗透测试?
    通过实际的攻击进行安全测试与评估的方法。一种通过模拟恶意攻击者的技术与方法,挫败系统安全措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方式。
    Web渗透测试--针对WEB应用程序展开--服务器、中间件、数据库、WEB、App
    渗透测试工程师需要掌握技能--程序员开发思维、恶意攻击者的思路与方法
    2)WEB渗透测试步骤
    信息收集-->整站映射-->漏洞扫描-->漏洞利用(可能需要拓展渗透成果继续提权)-->测试报告(报告给出漏洞信息,验证信息,解决方法)
    3)注意
    整个过程中,及时与客户交流。前提:要进行授权

    1-2 基本渗透测试工具介绍
    1)HTPP代理:介于浏览器和服务器之间的中间桥梁,常用工具BurpSuite
    2)网站爬虫:对WEB App测试时对整个网站进行测试,常用工具:ZAP、BurpSuite、Httrack ;Python工具:Scrapy
    3)Web漏洞扫描:针对WEB App技术漏洞扫描,常用工具AppScan、AWVS;Python:工具W3af
    4)目录探测:对WEB App不链接页面探测,常用工具:Dirb、wfuzz
    5)特定任务:需要自动化探测与利用的步骤很多,某些新技术没有探测工具。使用Python开发安全工具成为首选,简单、高效、库多

    1-3 HTTP状态码获取
    1)HTTP模型:客户端请求-服务端响应,响应状态码-标识接收或拒绝请求
    2)Python解决问题:测试网站-https://httpbin.org/ GET方式,获取200状态码


    2-1 HTTP协议介绍
    1)协议分类:
    HTTP1.0 80端口 一次一个连接
    HTTP1.1 80端口 多次一个连接
    协议不安全 --> 明文传输
    HTTPS1.1 443端口 加密传输数据
    2)请求方法:
    HTTP1.0: GET、POST、HEAD
    HTTP1.1:OPTIONS、PUT、DELETE、TRACE、CONNECT、PATCH
    3)URL:协议://主机名.域名/文件夹/文件?参数=值&参数1=值1
    4)HTTP请求头:
    User-Agent:浏览器版本信息
    Accept-encoding:浏览器接受的编码
    Referer:当前网页从哪里跳转过来的
    Cookie:Cookie信息
    Location:跳转到哪里
    Set-Cookie:设置Cookie信息
    WWW-Authenticate:用于身份验证HTTP Basic等
    5)HTTP响应状态码
    1XX 信息提示 2XX 成功 3XX 重定向 4XX 客户端错误 5XX 服务端错误
    6)查看HTTP: 使用浏览器的审查工具、Burpsuite HTTP 截断代理 进行查看

    2-2.Python-HTTP请求
    1)GET请求
    不带参数请求: requests.get(url)

    带参数请求 :request.get(url.params={key1=value1,key2=value2}) r.url获取请求URL

    2)POST请求
    不带参数请求:requests.post(url)
    带参数请求:requests.post(url,data={key1:value1})

    3)自定义请求头
    headers = {key1:value2}
    requests.get(url,headers=headers)

     

    4)其他请求
    r = requests.put('http://httpbin.org/put', data={'key':'value'})
    r = requests.delete('http://httpbin.org/delete')
    r = requests.head('http://httpbin.org/get')
    r = requests.options('http://httpbin.org/get')

    2-3.Python-HTTP响应
    1)获取响应状态码
    r.status_code
    2)获取响应文本
    r.content
    r.text
    3)获取响应头
    r.headers
    获取请求头: r.requests.headers
    4)获取请求url
    r.url
    5)获取cookie
    r.cookies

    2-4.Python-HTTP代理
    1)代理设置 httphttps
    2)参数设置:proxies verify=false
    3)结合burpsuite查看

     

    2-5.Python-HTTP会话编程
    1)携带Cookie的会话
    访问某些页面时,会通过Set-Cookie设置Cookie值,以便下一次访问自动提交Cookie进行身份验证
    2)Python-Session
    s = requests.Session()
    r = s.get(url) 或者 r = s.post(url)

    2-6.Python目录扫描工具
    1)目录扫描原理
    1、读取字典文件,拼接URL
    2、HTTP GET请求URL
    3、判断状态码 输出存在目录
    2)字典文件读取
    with open("filename.txt","r") as f:
    f.readline()
    f.readlines()
    f.read(10)
    3)工具编写
    读取字典文件
    HTTP GET请求
    参数优化

    2-7.Python目录扫描工具-基础补充
    1)命令行Python参数传递
    sys.argv[0] 、 sys.argv[1]
    2)文件读写补充
    open(filename,mode)
    r 读取
    w 写操作会自动写入内容,并且对之前的内容进行覆盖
    a 追加


    3)自定义User-Agent
    获取
    扫描工具自定义User-Agent

    2-8.Python - IIS PUT漏洞探测工具
    1)工具原理
    IIS中拓展工具WebDAV支持HTTP方法,也提供了一些其他功能强大的方法(Move),使得开启WebDAV可以直接上传任意文件。
    使用HTTP options方法可以探测出服务器支持的HTTP方法。
    2)工具编写
    1、确定目标服务器
    2、发送OPTIONS请求
    3、确定结果中是否具有MOVE PUT

    2-9.Python - 获取HTTP服务器信息
    1)获取中间件信息
    IIS Apache
    2)获取脚本信息

    2-10.Python - 漏洞检测工具
    1)漏洞原理
    1、漏洞被披露之后,根据漏洞原理写出对应的POC代码,用来验证漏洞是否存在
    2、写POC代码首先要了解漏洞原理,以ms15-034为例
    2)代码编写
    1、"GET / HTTP/1.1 Host: stuff Range: bytes=0-18446744073709551615 ";
    2、使用Python编写

    3)验证检测效果
    1、搭建漏洞环境用于测试
    2、与其他工具进行效果对比

    3-1.站点地图构建
    1)测试Web App首要任务
    获取站点完整目录与文件
    2)技术种类
    1、通过基于字典的目录文件扫描确定,使用python requests可以轻松完成任务
    2、通过基于网络爬虫的技术确定,使用python scrapy完成,requests也可以但是复杂
    3)Burpsuite构建站点地图
    spider功能扫描

  • 相关阅读:
    问题:sqlserver 跨服务器连接;结果:Sql Server 跨服务器连接
    SpringBoot之Servlet、Filter、Listener配置
    spring boot 使用@ConfigurationProperties
    Mysql字段属性应该尽量设置为not null
    微服务—ELK分布式日志框架
    微服务—分布式服务追踪sleuth和zipkin
    微服务—熔断器Hystrix
    @RequestBody和@ResponseBody的使用情形以及RestTemplate的http报文转换
    application/x-www-form-urlencoded和multipart/form-data
    基于JWT的token身份认证方案
  • 原文地址:https://www.cnblogs.com/Ben-john/p/14630377.html
Copyright © 2011-2022 走看看