python网站后台_Python 网站后台扫描脚本

Python 网站后台扫描脚本

1062851-20180508233017898-836485043.png

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

#!/usr/bin/python

#coding=utf-8

import sys

import urllib

import time

url= "http://123.207.123.228/"

txt= open(r"C:\Users\ww\Desktop\houtaiphp.txt","r")

open_url= []

all_url= []

def search_url(url,txt):

withopen(r"C:\Users\ww\Desktop\houtaiphp.txt","r") as f :

for eachin f:

each= each.replace('\n','')

urllist= url+each

all_url.append(urllist)

print("查找:"+urllist+'\n')

try:

req= urllib.urlopen(urllist)

if req.getcode()== 200:

open_url.append(urllist)

if req.getcode()== 301:

open_url.append(urllist)

except:

pass

def main():

search_url(url,txt)

if open_url:

print("后台地址:")

for eachin open_url:

print("[+]"+each)

else:

print("没有找到网站后台")

if __name__== "__main__":

main()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#!/usr/bin/python

#coding=utf-8

import sys

import urllib

import time

url= "http://123.207.123.228/"

txt= open(r"C:\Users\ww\Desktop\houtaiphp.txt","r")

open_url= []

all_url= []

def search_url(url,txt):

withopen(r"C:\Users\ww\Desktop\houtaiphp.txt","r") as f :

for eachin f:

each= each.replace('\n','')

urllist= url+each

all_url.append(urllist)

handle_url(urllist)

def handle_url(urllist):

print("查找:"+urllist+'\n')

try:

req= urllib.urlopen(urllist)

if req.getcode()== 200:

open_url.append(urllist)

if req.getcode()== 301:

open_url.append(urllist)

except:

pass

def main():

search_url(url,txt)

if open_url:

print("后台地址:")

for eachin open_url:

print("[+]"+each)

else:

print("没有找到网站后台")

if __name__== "__main__":

main()

1062851-20180509000036126-22272934.png

师傅让我多看看-->多线程

这里就加个多线程吧。

copycode.gif

#!/usr/bin/python

#coding=utf-8

import sys

import urllib

import time

import threading

url = "http://123.207.123.228/"

txt = open(r"C:\Users\ww\Desktop\houtaiphp.txt","r")

open_url = []

all_url = []

threads = []

def search_url(url,txt):

with open(r"C:\Users\ww\Desktop\houtaiphp.txt","r") as f :

for each in f:

each = each.replace('\n','')

urllist = url+each

all_url.append(urllist)

def handle_url(urllist):

print("查找:"+urllist+'\n')

try:

req = urllib.urlopen(urllist)

if req.getcode() == 200:

open_url.append(urllist)

if req.getcode() == 301:

open_url.append(urllist)

except:

pass

def main():

search_url(url,txt)

for each in all_url:

t = threading.Thread(target = handle_url,args=(each,))

threads.append(t)

t.start()

for t in threads:

t.join()

if open_url:

print("后台地址:")

for each in open_url:

print("[+]"+each)

else:

print("没有找到网站后台")

if __name__ == "__main__":

start = time.clock()

main()

end = time.clock()

print("spend time is:%.3f seconds" %(end-start))

copycode.gif

多线程和没加线程的时间对比

1062851-20180514130102092-862782111.png

--------------------------------------------------------------------------------------------------------------------------------------------------

利用zoomeye搜索

调用ZoomEye API获取信息

主要涉及模块urllib,json,os模块。

copycode.gif

# coding: utf-8

import os

import requests

import json

access_token = ''

ip_list = []

def login():

"""

输入用户米密码 进行登录操作

:return: 访问口令 access_token

"""

user = raw_input('[-] input : username :')

passwd = raw_input('[-] input : password :')

data = {

'username' : user,

'password' : passwd

}

data_encoded = json.dumps(data) # dumps 将 python 对象转换成 json 字符串

try:

r = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)

r_decoded = json.loads(r.text) # loads() 将 json 字符串转换成 python 对象

global access_token

access_token = r_decoded['access_token']

except Exception,e:

print '[-] info : username or password is wrong, please try again '

exit()

def saveStrToFile(file,str):

"""

将字符串写如文件中

:return:

"""

with open(file,'w') as output:

output.write(str)

def saveListToFile(file,list):

"""

将列表逐行写如文件中

:return:

"""

s = '\n'.join(list)

with open(file,'w') as output:

output.write(s)

def apiTest():

"""

进行 api 使用测试

:return:

"""

page = 1

global access_token

with open('access_token.txt','r') as input:

access_token = input.read()

# 将 token 格式化并添加到 HTTP Header 中

headers = {

'Authorization' : 'JWT ' + access_token,

}

# print headers

while(True):

try:

r = requests.get(url = 'https://api.zoomeye.org/host/search?query="phpmyadmin"&facet=app,os&page=' + str(page),

headers = headers)

r_decoded = json.loads(r.text)

# print r_decoded

# print r_decoded['total']

for x in r_decoded['matches']:

print x['ip']

ip_list.append(x['ip'])

print '[-] info : count ' + str(page * 10)

except Exception,e:

# 若搜索请求超过 API 允许的最大条目限制 或者 全部搜索结束,则终止请求

if str(e.message) == 'matches':

print '[-] info : account was break, excceeding the max limitations'

break

else:

print '[-] info : ' + str(e.message)

else:

if page == 10:

break

page += 1

def main():

# 访问口令文件不存在则进行登录操作

if not os.path.isfile('access_token.txt'):

print '[-] info : access_token file is not exist, please login'

login()

saveStrToFile('access_token.txt',access_token)

apiTest()

saveListToFile('ip_list.txt',ip_list)

if __name__ == '__main__':

main()

copycode.gif

1062851-20180515091835511-2046396391.png

上面的脚本是搜索 phpmyadmin 的。搜索得到的 IP 会保存在同路径下的 ip_list.txt 文件。

但是搜索到的 ip 并不是都能够访问的,所以这里写个了识别 phpmyadmin 的脚本,判断是否存在,是则输出。

copycode.gif

#!/usr/bin/python

#coding=utf-8

import sys

import time

import requests

headers = {'User-Agent':"Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"}##浏览器请求头

open_url = []

all_url = []

payloa = 'http://'

payload = '/phpmyadmin/index.php'

def search_url():

with open(r"C:\Users\ww\Desktop\ip_list.txt","r") as f :

for each in f:

each = each.replace('\n','')

urllist = payloa+each+payload

all_url.append(urllist)

handle_url(urllist)

def handle_url(urllist):

#print('\n'+urllist)

#print '----------------------------'

try:

start_htm = requests.get(urllist,headers=headers)

#print start_htm

if start_htm.status_code == 200:

print '*******************************************'

print urllist

except:

pass

if __name__ == "__main__":

search_url()

copycode.gif

1062851-20180515091850292-383731789.png

加个多线程,毕竟工作量很大。

copycode.gif

#!/usr/bin/python

#coding=utf-8

import sys

import time

import requests

import threading

headers = {'User-Agent':"Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"}##浏览器请求头

open_url = []

all_url = []

threads = []

payloa = 'http://'

payload = '/phpmyadmin/index.php'

def search_url():

with open(r"C:\Users\ww\Desktop\ip_list.txt","r") as f :

for each in f:

each = each.replace('\n','')

urllist = payloa+each+payload

all_url.append(urllist)

#handle_url(urllist)

def handle_url(urllist):

#print('\n'+urllist)

#print '----------------------------'

try:

start_htm = requests.get(urllist,headers=headers)

#print start_htm

if start_htm.status_code == 200:

print '*******************************************'

print urllist

except:

pass

def main():

search_url()

for each in all_url:

t = threading.Thread(target=handle_url,args=(each,))

threads.append(t)

t.start()

for t in threads:

t.join()

if __name__ == "__main__":

start = time.clock()

main()

end = time.clock()

print("spend time is %.3f seconds" %(end-start))

copycode.gif

1062851-20180515094814158-1610090446.png

这下就方便了许多。

任重而道远!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库系统的三级模式结构知识笔记

1、数据抽象的三个层次数据库系统利用三个层次划分来抽象来对用户屏蔽系统的复杂性、简化用户与系统的交互。1.1 物理层物理层属于最低级层次的抽象,描述数据在存储器上如何进行存储的。物理层会详细描述复杂的底层结构。1.2 逻辑层逻辑层属于中间层,用来…

Arrays.sort()排序

/*** Arrays.sort()排序* 默认升序*/Testpublic void test(){Integer[] result {1,4,7,9};Arrays.sort(result);for (int i 0;i<result.length;i)System.out.println(i);}

import package的问题

在新建class的时候除了名字还可以选择包名&#xff1a; 新建2个包名&#xff0c;然后在不同的包里写2个同名的类&#xff0c; 程序中导入另外一个包 package com.hs;import com.hy.Father; 当直接使用Father的时候提示是引用的com.hy.Father public static void main(String[] …

数据库技术基础:常见基本模型介绍笔记

1、层次模型层次模型采用树型结构表示数据与数据间的联系。层次模型中每个节点表示一个实体&#xff0c;实体之间的联系用节点之间的连线表示&#xff0c;并且除了根节点以外&#xff0c;其他节点有且仅有一个双亲节点。层次模型特点&#xff1a;记录之间的联系通过指针实现&am…

升序

/*** 升序*/Testpublic void test25() {List<Integer> array Stream.of(1, 8, 5, 3).collect(toList());// 升序排序array.sort(Integer::compareTo);System.out.println(array);}

数据库技术:数据存储和查询知识笔记

1、存储管理器存储管理器作用&#xff1a;负责数据库中数据的存查询和更新。存储管理器负责和文件系统交互&#xff0c;将不同的DML语句翻译成底层文件系统命令&#xff0c;通过这种方式原始数据就通过文件系统存储在磁盘上。存储管理器是存储底层数据和应用程序、以及向数据库…

lambda中orElse(null)使用

如果取得第一个元素&#xff0c;则用findFirst() 最后提取元素的时候&#xff0c;可以用&#xff1a;get或者orElse(null) 这里要注意的是&#xff0c;规范用法是orElse(null) 用get方法&#xff0c;如果filter中获取的是null&#xff0c;那么用get方法会抛出异常&#xff1…

数据挖掘:数据仓库相关知识笔记

1、数据仓库介绍数据仓库&#xff08;DW&#xff09;&#xff1a;可以满足管理人员的决策分析需要&#xff0c;在数据库基础上产生了满足决策分析需要的数据环境。传统数据库和数据仓库比较比较内容传统数据库数据仓库数据内容当前数据历史的、存档的、归纳的、计算的数据目标面…

python200行代码_如何用200行Python代码“换脸”

本文将介绍如何编写一个只有200行的Python脚本&#xff0c;为两张肖像照上人物的“换脸”。 这个过程可分为四步&#xff1a; 检测面部标记。 旋转、缩放和转换第二张图像&#xff0c;使之与第一张图像相适应。 调整第二张图像的色彩平衡&#xff0c;使之与第一个相匹配。 把第…

git的smart Checkout跟force checkout的区别

1:在切换分支的时候,常常会遇到下图的问题 是因为我在test分支上修改了代码&#xff0c;但是没有commit&#xff0c;切换到其他分支上就弹出了这个窗口 我们需要怎么处理呢 2:可以看到弹框底部有Force Checkout Dont checkout Smart Checkout,表示什么意思呢 Smart …

数据挖掘相关知识介绍

1、数据挖掘定义把数据库中大量数据背后隐藏的重要信息抽取出来&#xff0c;然后为公司创造很多潜在的利润&#xff0c;针对这种海量数据库中挖掘数据信息的技术称为数据挖掘&#xff08;DM&#xff09;。2、数据挖掘的分类按照数据库种类&#xff1a;关系型数据库的数据挖掘、…

c语言数字灵活多变的访问形式_学习C语言你必须知道的事儿!

是新朋友吗&#xff1f;记得先点蓝字关注我哦&#xff5e;今日课程菜单Java全栈开发 | Web前端H5大数据开发 | 大数据分析人工智能Python | 人工智能物联网有听过这样一段话&#xff1a;在编程界&#xff0c;C语言就是道家的“三”&#xff0c;A生B&#xff0c;B生C&#xff0c…

IDEA通过git怎么回滚到某个提交节点或某个版本

1:先右键点击项目&#xff0c;选择git,接着Show History 2:这里会显示有历史提交的版本记录,假设我要回滚到箭头处到提交&#xff0c;操作如下 3:右键点击&#xff0c;点击Copy Revision Number 在编辑器里粘贴&#xff0c;可以看到如下 4:右击选择项目&#xff0c;选择git -&…

关系数据库基础知识介绍

1、关系的相关名词介绍属性&#xff08;Attribute&#xff09;:描述事物的若干特征称为属性。比如学号、姓名、职位、年龄等。域&#xff08;Domain&#xff09;&#xff1a;针对属性的取值范围集合。比如性别取值为男、女、学号的长度为8位等。一般在关系数据模型中&#xff0…

android中xmlns:tools属性详解

第一部分 安卓开发中&#xff0c;在写布局代码的时候&#xff0c;ide可以看到布局的预览效果。 但是有些效果则必须在运行之后才能看见&#xff0c;比如这种情况&#xff1a;TextView在xml中没有设置任何字符&#xff0c;而是在activity中设置了text。因此为了在ide中预览效果&…

python excel库 linux_用python写一个简单的excel表格获取当时的linux系统信息

最近在学习excel表格的制作&#xff0c;顺便结合之前学习的内容&#xff0c;利用python的两个模板&#xff0c;分别是获取系统信息的psutil&#xff0c;和生成excel表格的xlsxwriter。利用这两个模板将生成一个简单的excel表格&#xff0c;获取当时的linux系统信息&#xff0c;…

mac下安装brew下载非常慢解决方法

一键解决&#xff1a;自动脚本(全部国内地址)&#xff08;在Mac os终端中复制粘贴回车下面这句话) /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"输入y 在终端环境下&#xff0c;brew --version 查看brew的版本&#xf…

关系数据库模式和完整性约束相关概念

一、关系数据库模式介绍关系的描述形式&#xff1a;R(U,D.dom,F)&#xff0c;简化形式&#xff1a;R(U)、R(A1,A2,A3...An)R:表示关系名&#xff1b;U组成该关系的属性名集合&#xff1b;D是属性的域&#xff1b;dom是属性向域的映像集合&#xff1b;F为属性间数据的依赖关系集…

分布式锁的实现方式

在进行大型网站技术架构设计以及业务实现的过程中&#xff0c;多少都会遇到需要使用分布式锁的情况。那么问题也就接踵而至。分布式锁zk和memcached以及redis三者都能实现&#xff0c;同样是分布式锁&#xff0c;三者的区别何在&#xff1f;各自适用什么场景&#xff1f; 一、Z…

关系数据库基础:关系代数运算知识笔记

1、关系代数运算符集合运算符&#xff1a;并(U)、差(-)、交(∩)、笛卡尔积()专门的关系运算符&#xff1a;选择(∂)、投影(π)、连接&#xff08;∞&#xff09;、除()算术比较符&#xff1a;大于&#xff08;&#xff1e;&#xff09;、大于等于&#xff08;≥&#xff09;、小…