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)代理设置 http\https
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\r\nHost: stuff\r\nRange: bytes=0-18446744073709551615\r\n\r\n";
2、使用Python编写

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

 

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

posted on 2021-04-08 00:53  Ben_John  阅读(217)  评论(0编辑  收藏  举报

导航