前言:

今天师傅叫我,写个python版的御剑。然后我之前也写过

不过不怎么样,这次有新想法。

思路:

御剑:读取御剑配置文件里的所有路径,加上用户要扫描的url。进行批量检测,如果状态码为200并且无Error.ini里面的错误就存在该路径。报存在save.txt (详细看代码)

路径:

御剑代码:

import requests
import random
import os
file=[]
url=[]
error=[]
bc=[]
ip=[]
headers={}
user=input('Import TXT:')
banner='''
____ _
| _ \ ___ ___| |_ _ __ ___ _ _ ___ _ __
| | | |/ _ \/ __| __| '__/ _ \| | | |/ _ \ '__|
| |_| | __/\__ \ |_| | | (_) | |_| | __/ |
|____/ \___||___/\__|_| \___/ \__, |\___|_|
|___/ Producer:Nine world
'''
useragent=[]
twoo=[]
print(banner) def urls():
dk=open('{}'.format(user),'r')
for k in dk.readlines():
qcs="".join(k.split('\n'))
url.append(qcs)
print('[+]url.txt Load completion')
print(' ')
print(' ')
urls() def judge():
pd=os.listdir('御剑配置文件')
for name in pd:
file.append(name) for f in file:
print('[+]existence {}'.format(f)) print(' ')
print(' ') dk=open('user-agent.txt','r')
for d in dk.readlines():
qc="".join(d.split('\n'))
useragent.append(qc)
print('[+]user-agent Load completion')
print(' ')
print(' ')
judge() def errors():
lv=open('Error/error.txt','r')
for e in lv.readlines():
qcsw="".join(e.split('\n'))
error.append(qcsw)
print('[+]The filter file is loaded')
print(' ')
print(' ')
errors() def forge():
sj=[]
dkw=open('ip.txt','r')
for i in dkw.readlines():
k="".join(i.split('\n'))
ip.append(k) for g in range(0,len(useragent)):
u='User-Agent='
x='X-Forwarded-For='
c='Client-IP='
sj.append(u+useragent[g]+'&'+x+ip[g]+'&'+c+ip[g])
kc=list(set(sj))
su=random.choice(kc)
qc=str(su)
for v in qc.split('&'):
key,value=v.split('=',1)
headers[key]=value
forge() def exploit():
wi=os.listdir('御剑配置文件')
for w in wi:
dp=open('{}'.format('御剑配置文件/'+w),'r',encoding='gbk')
for s in dp.readlines():
we="".join(s.split('\n'))
for u in url:
up='{}'.format(u).rstrip('/')+we
try:
requet=requests.get(url=up,headers=headers,timeout=3,allow_redirects=False)
for e in error:
if requet.status_code==200 and not e in requet.text:
ok='[+]code:{} url:{}'.format(requet.status_code,requet.url)
if ok in twoo:continue
twoo.append(ok)
print(ok)
else:
no='[x]Not url :{}'.format(requet.url)
if no in bc:continue
bc.append(no)
print(no)
except Exception as u:
print('[-]Error {}'.format(u)) if len(twoo)>0:
od=open('save.txt','w')
od.close() xr=open('save.txt','r')
for c in twoo:
print(c,file=open('save.txt','a')) exploit()

测试效果:

Github下载地址:https://github.com/422926799/python/tree/master/%E5%BE%A1%E5%89%91

python写个御剑的更多相关文章

  1. Python写各大聊天系统的屏蔽脏话功能原理

    Python写各大聊天系统的屏蔽脏话功能原理 突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时 ...

  2. python写红包的原理流程包含random,lambda其中的使用和见简单介绍

    Python写红包的原理流程 首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机 ...

  3. Python写地铁的到站的原理简易版

    Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这 ...

  4. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  5. 读书笔记汇总 --- 用Python写网络爬虫

    本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...

  6. Python写UTF8文件,UE、记事本打开依然乱码的问题

    Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...

  7. python 写的http后台弱口令爆破工具

    今天来弄一个后台破解的Python小程序,哈哈,直接上代码吧,都有注释~~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

  8. 『安全工具』目录扫描 DirBuster AND 御剑

    要想熟悉目标网站的体系架构,知道网站有哪些目录是必不可少的 向AWVS,Burp类大型扫描工具也可以进行目录扫描,不过个人感觉远没有专业扫描工具来的简单,实在 0x 01 DirBuster 简介:D ...

  9. python写xml文件

    为了便于后续的读取处理,这里就将信息保存在xml文件中,想到得到的文件如下: 1 <?xml version="1.0" encoding="utf-8" ...

随机推荐

  1. CTF-练习平台-Misc之 中国菜刀,不再web里?

    八.中国菜刀,不再web里? 下载文件后解压,是一个数据包,用wireshark打开,题中说的是菜刀,那就找http协议,首先过滤出http协议包 在第四个里面找到一句话木马 Flag应该在木马之后拿 ...

  2. Sort An Unsorted Stack

    Given a stack of integers, sort it in ascending order using another temporary stack. Examples: Input ...

  3. JavaScript原型继承工作原理

    原型继承的定义 当你阅读关于JS原型继承的解释时,你时常会看到以下这段文字: 当查找一个对象的属性时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止.——出自JavaScript秘 ...

  4. 使用docusaurus 搭建开发&&api && 博客站点

    对于日常的开发系统以及产品一个简单,方便的api&&文档网站可以七很大的作用 docusaurus 是facebook开源的文档管理框架,使用它我们可以快速的创建专业. 完备的文档站点 ...

  5. Android已有的原生Camera框架中加入自己的API的实现方案。

    版权声明:本文为CSDN博主(天才2012)原创文章.未经博主同意不得转载. https://blog.csdn.net/gzzaigcn/article/details/25707389     在 ...

  6. Effective C++:条款23:宁以non-member、non-friend替换member函数

    (一) 有个class来表示网页浏览器: class WebBrowser { public: void clearChache(); void clearHistory(); void remove ...

  7. 标 题: 有什么办法快速把pc上的网址发送到手机上

    标  题: 有什么办法快速把pc上的网址发送到手机上 transfer2u, pushbullet都可以实现你说的功能,还可以把图片或者选中内容/剪贴板内容发送到手机.后者功能更强,还支持在电脑之间发 ...

  8. hadoop yarn 知识点

    yarn 简介: Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存.IO.网络.磁盘等.其产生的原因是为了解决原MapReduce框架的不足.最初MapRe ...

  9. package.json 文件中的版本号

    版本号,格式:"主要版本,次要版本,补丁版本" 指定版本:比如1.2.2,遵循"主版本,次要版本,补丁版本"的格式规定,安装时只安装指定版本. 波浪号(tild ...

  10. shell教程-002:常见的Shell种类

    Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少种Sh ...