我自横刀向天笑,去留肝胆两昆仑。这篇文章主要讲述PyHacker编写指南打造网站后台扫描器相关的知识,希望能为你提供帮助。
这节课是巡安似海PyHacker编写指南的《打造网站后台扫描器》包括如何处理假的200页面/404智能判断等
喜欢用python写脚本的小伙伴可以跟着一起写一写呀。
编写环境:Python2.x
?
?
00x1:
需要用到的模块如下:
import request
00x2:
先将请求的基本代码写出来:
import requests
def dir(url):
headers=User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0
req = requests.get(url=url,headers=headers)
print req.status_code
dir(http://www.hackxc.cc)
文章图片
?
00x3:
设置超时时间,以及忽略不信任证书
import urllib3
urllib3.disable_warnings()
req = requests.get(url=url,headers=headers,timeout=3,verify=False)
再加个异常处理
文章图片
文章图片
调试一下
文章图片
再进行改进,如果为200则输出
if req.status_code==200:
print "[*]",req.url
00x4:
难免会碰到假的200页面,我们再处理一下
处理思路:
首先访问hackxchackxchackxc.php和xxxxxxxxxx记录下返回的页面的内容长度,然后在后来的扫描中,返回长度等于这个长度的判定为404
def dirsearch(u,dir):
try:
headers =
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0
#假的200页面进行处理
hackxchackxchackxc = /hackxchackxchackxc.php
hackxchackxchackxc_404 =requests.get(url=u+hackxchackxchackxc,headers=headers)
# print len(hackxchackxchackxc_404.content)
xxxxxxxxxxxx = /xxxxxxxxxxxx
xxxxxxxxxxxx_404 = requests.get(url=u + xxxxxxxxxxxx, headers=headers)
# print len(xxxxxxxxxxxx_404.content)
#正常扫描
req = requests.get(url=u+dir,headers=headers,timeout=3,verify=False)
# print len(req.content)
if req.status_code==200:
if len(req.content)!=len(hackxchackxchackxc_404.content)and len(req.content)!= len(xxxxxxxxxxxx_404.content):
print "[+]",req.url
else:
print u+dir,404
except:
pass
很nice
文章图片
00x5:
再让结果自动保存
文章图片
0x06:
完整代码:
#!/usr/bin/python
#-*- coding:utf-8 -*-
import requests
import urllib3
urllib3.disable_warnings()
urls = []
def dirsearch(u,dir):
try:
headers =
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0
#假的200页面进行处理
hackxchackxchackxc = /hackxchackxchackxc.php
hackxchackxchackxc_404 =requests.get(url=u+hackxchackxchackxc,headers=headers)
# print len(hackxchackxchackxc_404.content)
xxxxxxxxxxxx = /xxxxxxxxxxxx
xxxxxxxxxxxx_404 = requests.get(url=u + xxxxxxxxxxxx, headers=headers)
# print len(xxxxxxxxxxxx_404.content)
#正常扫描
req = requests.get(url=u+dir,headers=headers,timeout=3,verify=False)
# print len(req.content)
if req.status_code==200:
if len(req.content)!=len(hackxchackxchackxc_404.content)and len(req.content)!= len(xxxxxxxxxxxx_404.content):
print "[+]",req.url
with open(success_dir.txt,a+)as f:
f.write(req.url+"\\n")
else:
print u+dir,404
else:
print u + dir, 404
except:
pass
if __name__ == __main__:
url = raw_input(\\nurl:)
print ""
if http not in url:
url = http://+url
dirpath = open(rar.txt,r)
for dir in dirpath.readlines():
dir = dir.strip()
dirsearch(url,dir)
喜欢的朋友们点个关注叭~
【PyHacker编写指南打造网站后台扫描器】
文章图片
推荐阅读
- JVS快速开发框架2.1.4版本更新功能说明,请收下!
- 没想到吧!这个可可爱爱的游戏居然是用 ECharts 实现的!
- 初识DevOps
- 计算机网络的性能指标
- 技术分享 | 网页 frame 与多窗口处理
- uni-app技术分享| uni-app转小程序-实时消息
- 人工智能超大规模预训练模型浅谈
- KiCad: 一个电子原理图设计和布局创建套件
- JavaScript函数闭包以及作用域