python写个御剑

Posted 东京$

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python写个御剑相关的知识,希望对你有一定的参考价值。

前言:

今天师傅叫我,写个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写个御剑的主要内容,如果未能解决你的问题,请参考以下文章

jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段

[学习]安装记录: 御剑

御剑指纹识别

御剑苍穹

多年珍藏的55w御剑字典

常用python日期日志获取内容循环的代码片段