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

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

一、何为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参数params
HTTP头部headers
POST参数data
文件files
Cookiescookies
重定向处理allow_redirects=False/True
超时timeout
证书验证verify=False/True
工作流(延迟下载)stream=False/True
事件挂钩hooks=dict(response)
身份验证auth=
代理proxies=

对象方法

URL.url
text.text
编码.encoding/.enconding=
响应内容.content
Json解码器.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)

在这里插入图片描述

⑤文件上传

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

<html>
<meta charset="utf-8">
<h1>
	文件上传测试
</h1>
<form
	action=""
	method="post"
	enctype="multipart/form-data"
>
    <input type="file" name="userUpFile">
	<input type="submit" name="userSubmit" value=
	"上传">
</form>
</html>
<hr />
<?php
echo"<pre>";
if(isset($_POST['userSubmit'])){
	var_dump($_FILES);
	$tmp_path=$_FILES['userUpFile']['tmp_name'];
	$path=__DIR__."\\".$_FILES['userUpFile']['name'];
	//echo $path;
	if(move_uploaded_file($tmp_path,$path)){
		echo "upfile success!";
		echo "<br />".$_FILES['userUpFile']['name'];
		echo $path;
	}else{
		echo "upfile failed";
	}	
}
	
?>

在这里插入图片描述
编写上传文件的python脚本

import requests
url = "http://127.0.0.1/pocexp/upfile.php"

upFile = {"userUpFile":open("poc.py","rb")}
postData = {"userSubmit":"submit"}
res = requests.post(url = url,files = upFile,data = postData)

print(res.text)

在这里插入图片描述
会发现文件已经成功上传到php页面的文件夹下

⑥cookies

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

import requests
url="http://127.0.0.1/pocexp/cookie.php"
coo = {"name":"L1NG"}
res = requests.get(url = url,cookies = coo)
print(res.text)

在这里插入图片描述
下一节讲述利用sql-lab-8和sql-lab-9编写获取数据库的exp
简单的poc以及exp编写(进阶篇)

  • 34
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
漏洞细节、POC(Proof of Concept)以及EXPExploit)是指揭示和证明系统中存在的漏洞的详细信息、漏洞利用和利用脚本。这些信息通常是研究人员或黑客根据自己的研究和测试发现的,并在互联网上公开分享。 泄露漏洞细节、POCEXP在一定程度上可以促进信息安全领域的发展。通过公开这些信息,可以让用户和厂商了解系统的安全问题,进而采取相应的防护措施和修复漏洞。这有助于增强系统的安全性,并推动整个安全行业的进步。 然而,漏洞细节、POCEXP的公开也存在一些风险和问题。首先,黑客可以利用这些信息对系统进行攻击,从而造成安全威胁。其次,厂商可能不及时修复漏洞,导致用户信息泄露或其他损失。此外,某些黑客可能使用这些信息进行非法活动,危害他人。 因此,在公开漏洞细节、POCEXP之前,我们需要权衡风险和利益。对于研究人员来说,他们应该遵守道德和法律规定,在公开之前与相关方协商,并按照合适的方式发布信息。对于厂商和用户来说,他们应及时关注漏洞信息,采取相应的安全措施,如及时升级补丁、增强防护措施等。 总之,漏洞细节、POCEXP在互联网上流传的现象存在一定的利与弊。合理的披露和利用可以推动整个信息安全领域的进步,但也需要各方共同关注和努力,以确保漏洞信息的安全和可持续发展。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值