简单的poc以及exp编写(入门篇)

您所在的位置:网站首页 漏洞赚钱是什么意思 简单的poc以及exp编写(入门篇)

简单的poc以及exp编写(入门篇)

2023-07-27 07:09| 来源: 网络整理| 查看: 265

本文中主要针对的是Web应用渗透中的漏洞,而与Web应用之间的交互大多是基于HTTP协议的。所以用到python中与HTTP协议相关的一些模块

文章目录 一、何为POC和EXP二、基础环境Python3HTTPrequests模块中的http方法参数对象方法 三、使用相关操作①如何定制头部②超时③GET 传参④POST 传参⑤文件上传⑥cookies

一、何为POC和EXP

POC

Proof of Concept中文意思是“观点证明”,是用来检测是否存在漏洞的脚本

EXP

Exploit的中文意思是“漏洞利用”,是用来利用该漏洞的脚本

二、基础环境Python3 HTTP 方法内容GET获取资源POST传输实体主体PUT传输文件HEAD获得响应报文首部DELETE删除文件OPTIONS查询支持的方法TRACE追踪路径CONNECT要求用隧道协议进行连接LINK建立和资源之间的连接 requests模块中的http方法 在python中的使用res = requests.get()res = requests.post()res = requests.put()res = requests.delete()res = requests.head()res = requests.options() 参数 GET参数paramsHTTP头部headersPOST参数data文件filesCookiescookies重定向处理allow_redirects=False/True超时timeout证书验证verify=False/True工作流(延迟下载)stream=False/True事件挂钩hooks=dict(response)身份验证auth=代理proxies= 对象方法 URL.urltext.text编码.encoding/.enconding=响应内容.contentJson解码器.json原始套接字响应.raw/.raw.read()历史响应代码.history抛出异常.raise_for_status查看服务器响应头.headers查看客户端请求头.request.headers查看cookies.cookies身份验证.auth=更新.update解析连接字头.links[] 三、使用

了解了这些之后就可以试着去使用python的request模块 先在本地开启phpstudy模拟服务器端 在这里插入图片描述 在服务器创建这样的页面用来接收返回数据 在这里插入图片描述 在这里插入图片描述 接着编写python脚本

import requests res=requests.get("http://127.0.0.1/pocexp/get.php") print(res.text) #获取内容 print(res.status_code) #获取响应状态码 print(res.encoding) #获取响应编码 print(res.content) #以二进制方式获取响应正文 print(res.headers) #获取响应头部 print(res.url) #获取提交的URL

运行后可以看到这些结果 在这里插入图片描述

相关操作 ①如何定制头部 import requests url = "http://127.0.0.1/pocexp/get.php" header = {"User-Agent":"L1NG"} res = requests.get(url=url,headers=header) print(res.request.headers)

运行后可以看到这样的结果 在这里插入图片描述

②超时

在服务器创建这样的页面用来接收返回数据 在这里插入图片描述 在这里插入图片描述 访问该页面时5s后才会显示 此时编写python超时脚本

import requests url = "http://127.0.0.1/pocexp/timeout.php" try: res = requests.get(url = url,timeout = 3) #超过3s没获取到页面 输出Timeout print(res.text) except Exception as e: print("Timeout")

在这里插入图片描述 如果3s没有获取到页面则会显示Timeout

③GET 传参 import requests url = "http://127.0.0.1/pocexp/get.php" getPara = {"name":"L1NG","pwd":"666"} res = requests.get(url = url,params = getPara) print(res.text) print(res.url)

在这里插入图片描述

④POST 传参

在服务器创建这样的页面用来接收返回数据 在这里插入图片描述 在这里插入图片描述

import requests url = "http://127.0.0.1/pocexp/post.php" postData = {"name":"L1NG","pwd":"123456"} res = requests.post(url = url,data = postData) print(res.text)

在这里插入图片描述

⑤文件上传

在服务器创建这样的页面用来接收返回数据 在这里插入图片描述

文件上传测试


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3