Python于web层应用

Python于web层应用

HTTP协议基础

协议分类

HTTP 1.0 80端口 单次一个链接

HTTP 1.1 80端口 多次可一个链接

HTTP协议不够安全,进而发展出了HTTPS协议

HTTPS 443端口 加密后数据传输

请求方法

HTTP 1.0

GET POST HEAD

HTTP 1.1与HTTPS

OPTIONS PUT DELETE TRACE CONNECT PATCH

URL格式

协议://主机名.域名/文件夹/文件?参数=值&参数=值

HTTP请求头

User-Agent:浏览器版本信息

Accept-encoding:浏览器接受的编码

Referer:当前网页跳转来源

Cookie:顾名思义,好吃的饼干,Cookie信息

Location:跳转到哪里

Set-Cookie:设置Cookie信息

WWW-Authenticate:用于身份验证HTTP Basic等

HTTP响应状态码

1XX:信息提示

2XX:成功

3XX:重定向

4XX:客户端错误

5XX:服务端错误

查看HTTP

使用浏览器审查进行查看

使用Burpsuite截断查看

Python使用HTTP请求

GET请求

不带参数requests.get(url)

带参数requests.get(url=url,params={"key1":"value1","key2":"value2"})

返回的对象r.url获取url

POST请求

不带参数requests.post(url)

带参数requests.post(url=url,data={"key1":"value1","key2":"value2"})

自定义请求头

headers={key1:value1,key2:value2}

requests.get(url=url,headers=headers)

其他请求

requests.put(url,data)

requests.delete(url)

requests.head(url)

requests.options(url)

Python处理HTTP响应

获取相应状态码:r.status_code

获取响应文本:r.content(获取到二进制内容)r.text(获取原始文本代码)

获取相应头:r.headers

获取请求头:r.reuqests.headers

获取请求URL:r.url

获取Cookie:r.cookies

Python设置HTTP代理

代理设置:http和https:proxies={'http':'http://代理服务器:代理端口','https':'https://代理服务器:代理端口'}

参数设置:proxies=proxies,verfiy=False

Python会话编程

通过Set-Cookie设置一个cookie值

使用s=requesets.Session()建立一个新的空会话

r=s.get(url)来在会话中发起个体请求

Python制作目录扫描工具

目录扫描原理

1、读取字典文件拼接URL

2、通过get请求访问URL

3、获取状态码判断目录是否存在

字典文件读取

1、with open("filename.txt","r") as f:

2、读取方式:

  • f.readline()//读取一行
  • f.readlines()//逐行读取到一个列表中
  • f.read(字节数)//按字节读
  • line.strip()//去除空行

3、f.close()关闭文件流

4、sys库中的sys.argv[0]为当前python文件绝对路径,sys.argv[1]为传入第一个参数

5、User-Agent通过抓包先获取真实的User-Agent,再通过headers字典传入get请求

IIS PUT漏洞

IIS中拓展工具WebDAV支持HTTP方法,也提供了一些其他功能强大的方法(Move),使得开启WebDAV可以直接上传任意文件

探测方法:通过HTTP中options方法可以探测出服务器支持的HTTP方法

探测过程:

  • 确定目标主机
  • 使用HTTP options方法探测
  • 查看返回结果中是否存在MOVE PUT
  • 查看响应头中的PUBLIC属性

探测服务器信息

相应头中的Server:服务器中间件属性

X-Powered-By:服务器脚本技术

Python制作漏洞检测工具

首先了解漏洞产生原理,根据漏洞原理写出对应的POC代码来验证漏洞是否存在

构建站点地图

测试Web App的首要任务就是获取站点完整的目录和文件

技术种类:建议使用两种方式同时进行

1、通过基于字典的目录文件扫描

2、通过基于网络爬虫的技术(可通过requests库构建,但是很复杂,有scrapy库可用于构建爬虫)

3、通过Burpsuite构建网站地图